执行Git Pull时遇SSL证书信任错误,寻求解决方案
解决Amazon Linux实例上Git证书信任失败问题
碰到过一模一样的情况,Amazon Linux实例突然出现Git证书信任问题,大概率是系统根证书包过期,导致不再信任Digicert这类主流CA的证书。给你几个亲测有效的解决步骤:
1. 优先更新系统根证书包
Amazon Linux使用ca-certificates管理根证书,先更新这个包:
sudo yum update ca-certificates -y
更新完成后,建议重启一下实例(或者至少重启Git相关的会话),然后再尝试执行git pull,大部分情况这一步就能解决问题。
2. 手动导入Digicert根证书(更新包无效时)
如果更新证书包后还是不行,可能是某些关键的Digicert根证书没有被包含在系统信任列表里,手动导入:
- 下载Digicert Global Root CA证书(GitHub的SSL证书链依赖这个根证书):
sudo curl -o /etc/pki/ca-trust/source/anchors/DigiCertGlobalRootCA.crt https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
- 更新系统证书信任存储:
sudo update-ca-trust extract
执行完这两步,系统就会信任Digicert的根证书了。
3. 临时绕过证书检查(仅测试用,不推荐)
如果只是临时需要拉取代码,不想花时间折腾证书配置,可以临时关闭Git的SSL验证,但这会带来安全风险,不要长期使用:
git config --global http.sslVerify false
问题解决后记得改回默认设置:
git config --global http.sslVerify true
4. 检查系统时间是否正常
有时候系统时间偏差过大也会触发证书验证失败,先确认时间是否正确:
date
如果时间不对,用NTP同步时间:
sudo ntpdate pool.ntp.org
内容的提问来源于stack exchange,提问作者Travis




