如何真正关闭 git 中的 ssl 验证?(http.sslVerify 被忽略)

如何真正关闭 git 中的 ssl 验证?(http.sslVerify 被忽略)

有无数页面描述关闭 SSL 验证可以解决这个问题,但就我而言却不能:

$ git -c http.sslVerify=true pull
fatal: unable to access 'https://git.mysite.local/bla/': SSL certificate problem: unable to get local issuer certificate
$ git -c http.sslVerify=false pull
fatal: unable to access 'https://git.mysite.local/bla/': SSL certificate problem: unable to get local issuer certificate

显然 sslVerify 的设置值没有任何区别。

更多信息:我在 Windows 10 上使用 git 2.22.0。它在我的 cygwin bash 中有效,但在 git bash、cmd、git 扩展等中无效。

答案1

我找到了一个解决方法,但实际上并不是解决方案。git 客户端会忽略所有 ssl 配置选项,并且始终根据“C:/Program Files/Git/mingw64/libexec/ssl/certs/ca-bundle.crt”验证证书,并且此文件不存在,并且在安装 git 时不会创建。我必须创建包含我们自签名证书的这个文件才能使其工作。在 cygwin 下,所有 ssl 配置选项也会被忽略,但会使用另一个 CA 捆绑文件,因为 git 会调用 cygwin openssl 客户端。我们只有在安装了 2.19 版的 git 客户端后才能追踪到问题,当发生错误时,它会在控制台上打印 CA 文件,而 git 2.21 则不会。

最后,降级到 git 2.9 后所有问题都消失了,所以下次我会坚持使用这个版本。

相关内容