如何在Git Bash中添加自签名证书至证书包以解决Git更新时的SSL证书错误?
如何在Git Bash中添加自签名证书至证书包以解决Git更新时的SSL证书错误?
嗨,我之前也碰到过一模一样的情况,咱们一步步来搞定这个问题:
方法一:修改Git自带的证书包
找到Git使用的证书文件路径
先打开Git Bash,输入命令确认当前Git配置的证书路径:git config --get http.sslCAinfo如果返回了具体路径,那就是咱们要找的文件;如果没有返回内容,Git默认用的是安装目录下的证书包,你可以先通过
where git找到Git的根目录(一般是C:\Program Files\Git),对应的证书包路径就是mingw64/ssl/certs/ca-bundle.crt(32位系统则是mingw32/ssl/certs/ca-bundle.crt)。准备你的自签名证书
确保你的根证书是PEM格式(就是文本形式,开头是-----BEGIN CERTIFICATE-----,结尾是-----END CERTIFICATE-----)。如果你的证书是二进制的DER格式,可以在Git Bash里用OpenSSL转成PEM:openssl x509 -inform der -in your-cert.cer -out your-cert.pem将证书添加到证书包
用管理员权限打开文本编辑器(比如Notepad++),找到并打开刚才的ca-bundle.crt文件,把你的PEM格式证书内容完整复制粘贴到文件末尾,然后保存即可。
方法二:单独指定证书文件(不修改系统证书包)
如果你不想改动Git自带的证书包,可以单独配置Git使用你的自签名证书:
- 把你的PEM格式证书放到一个固定的位置,比如
C:\Users\你的用户名\git-certs\my-root-cert.pem - 在Git Bash里运行以下命令配置全局Git参数:
这样Git就会优先使用你指定的证书来验证SSL连接了。git config --global http.sslCAinfo "C:/Users/你的用户名/git-certs/my-root-cert.pem"
额外提示
如果配置后git update-git-for-windows还是报错,记得检查你修改的证书路径是不是Git自带的那个,或者全局配置的路径是否正确——毕竟这个更新命令用的是Git内置的curl工具,必须让它能找到你的自签名证书才行。
备注:内容来源于stack exchange,提问作者Human
相关产品推荐
相关产品推荐

