为什么 git 不信任受信任的证书?

为什么 git 不信任受信任的证书?

我的 git 服务器是 Gitlab,它是本地(私人)托管的,并且有一个受信任的证书来自 comodo 的浏览器信任且无问题。

如果我处于需要使用 HTTPS 而不是 SSH 的情况(在本例中从 Ubuntu 16 机器),那么我总是必须通过使用http.sslVerify=falsegit 命令来绕过 SSL 验证。

如果我不禁用验证,那么我会得到:

fatal: unable to access 'https://gitlab.mysite.cloud/myrepo/somerepo.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

我觉得我已经使用 HTTPS 从其他 git 服务器下载了文件而不需要做任何特殊的事情,所以我不确定在这种情况下发生了什么。

从我的工作站,我使用 SSH,所以我从来没有遇到过这个问题,但我刚刚从我的 Mac 工作站测试了 HTTPS,我收到了同样的消息。

有人知道为什么 git 不信任我的受信任证书吗?

答案1

我需要注入中间证书。我使用了https://certificatechain.io/轻松实现此目的。

也可以通过将证书连接在一起形成链来手动完成,但是上述工具可以快速轻松地完成此操作。

该链作为新证书安装后,显示为完全信任。

答案2

要检查克隆是否在不检查上述证书的情况下有效,您可以设置:

export GIT_SSL_NO_VERIFY=1
#or
git config --global http.sslverify false

相关内容