Windows 11下Git Clone因SSL证书被拒,已信任CA仍无法解决
解决Git Bash克隆Azure DevOps仓库的SSL证书信任问题
一、核心原因:Git Bash不默认读取Windows证书存储
你在Windows证书管理器里加了全链路证书但没用,本质是Git Bash依赖的是OpenSSL独立证书库,和Windows系统的证书存储不共享。按以下步骤配置即可解决:
导出公司根CA为PEM格式证书
- 打开
certmgr.msc,找到已安装的公司根CA证书 - 右键→所有任务→导出,选择「Base-64编码X.509(.CER)」格式,保存为
company-root-ca.pem(比如存到C:\certs目录)
- 打开
配置Git指向该证书文件
在Git Bash中执行命令:# 全局生效(所有仓库共用该配置) git config --global http.sslCAInfo "C:/certs/company-root-ca.pem" # 仅当前仓库生效(先进入目标仓库目录再执行) git config http.sslCAInfo "C:/certs/company-root-ca.pem"注意路径要使用正斜杠
/,不要用Windows默认的反斜杠\。验证配置生效
执行git config --global --get http.sslCAInfo(全局配置)或git config --get http.sslCAInfo(当前仓库配置),确认输出的证书路径正确后,再尝试git clone操作。
二、为什么企业环境常采用sslVerify false绕过验证?
- 配置成本极低:很多运维或开发人员不清楚Git Bash与Windows证书存储的差异,绕过验证是最快解决问题的方式,无需折腾证书导出、Git参数配置等步骤。
- 技术门槛低:不是所有团队成员都了解SSL证书链逻辑和Git的证书配置规则,统一告知“关闭验证”比逐个指导配置更高效。
- 环境变动频繁:企业内部可能频繁更换证书、调整代理规则,绕过验证可以避免反复更新证书配置的麻烦。
- 安全意识不足:部分企业认为内部环境风险低,对中间人攻击的危害认知不足,觉得绕过验证不会有问题。
但这种方式存在明显安全风险,可能导致中间人攻击窃取数据,建议优先采用正确的证书配置方式。
内容的提问来源于stack exchange,提问作者Pragmateek
相关产品推荐
相关产品推荐

