You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git for Windows执行git pull时报SSL certificate problem: certificate has expired错误

问题根因

你遇到的报错本质是两个因素共同导致的:

  • 你公司Git服务端当前返回的是Let's Encrypt为了兼容旧安卓设备提供的长证书链,R3中间证书的签发者指向已经过期的DST Root CA X3根证书
  • Git for Windows默认使用内置的OpenSSL和自带的CA证书bundle,验证逻辑会优先匹配服务端返回的链中的根证书,触发过期校验失败;而Chrome、火狐等浏览器的证书库已移除过期的DST根,会自动使用信任的ISRG Root X1根证书验证R3中间证书,因此可以正常访问。

解决方法

你可以按优先级选任意一种方案操作:

方案1:切换Git使用Windows系统证书库(最快生效)

Git for Windows支持使用schannel作为SSL后端,直接调用Windows系统的证书存储,和Chrome的验证逻辑完全一致。只需要执行一行命令即可:

git config --global http.sslBackend schannel

执行完成后再重试git pull操作,一般就能恢复正常。

方案2:删除Git内置CA库中的过期根证书

如果你需要保留OpenSSL作为SSL后端,可以手动移除内置CA证书里过期的DST Root CA X3:

  • 打开Git安装目录下的证书文件,默认路径为C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
  • 搜索DST Root CA X3对应的证书段,从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----整段删除
  • 保存文件后重试Git操作即可

方案3:调整Git服务端的证书链配置

如果有权限修改Git服务端的证书配置,可以将服务端返回的证书链切换为Let's Encrypt的默认短链,直接将R3中间证书锚定到ISRG Root X1根证书,不需要携带指向DST根的交叉签名证书,所有新版客户端都可以正常验证,从根源避免这个问题。

内容的提问来源于stack exchange,提问作者Jürgen Steinblock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:54:05