http.sslVerify=false 不会在 git config 中禁用 ssl 验证

问题描述 投票:0回答:1

问题:

我一直在尝试通过来自企业 GitHub 服务器的 http 代理(在 git 全局配置中设置)从 Ubuntu AWS 实例克隆 git 存储库。

从代理克隆可以工作,但是从实例克隆(通过代理)我收到以下错误:

致命:无法访问“https://githubserver.company.com/repository.git/”:服务器证书验证失败。 CA 文件:/etc/ssl/certs/ca-certificates.crt CRL 文件:无

我已经尝试下载服务器证书,将其添加到我的受信任证书中,并在 git 配置中指定 http.sslCAInfohttp.sslCAPath 选项,如许多其他线程中指定的那样。

显然,遇到此问题的其他人至少能够调试该问题,或者通过在 git 配置中暂时禁用 ssl 验证来对安全规则进行一次性例外。 然而,使用

git config --global http.sslVerify false
或任何变体(作为命令标志、环境变量、本地、全局或系统级别等)都没有效果。

这种情况发生在日期/时间不同步的人身上(但 AWS 实例和代理中的时间都是通过同一个 ntp 服务器同步的),或者在 Windows 上的特定上下文中,但我找不到此 git 的任何其他实例在 Linux 机器上像这样忽略配置。

我知道这会产生重大的安全隐患,但无法找到有类似问题的人让我觉得我一定错过了一些东西。

我浏览了几十个类似的帖子,但找不到一个人有我同样的问题。

我尝试过的:

我通过以下方式获得证书:

openssl s_client -showcerts -connect $hostname:$port -servername $hostname

放入

/usr/local/share/ca-certificates/
作为 .pem 文件

通过将证书添加到/etc/ssl/certs/ca-certificates.crt

sudo update-ca-certificates
.

并在 git 全局配置中添加以下选项:

sslCAInfo = /etc/ssl/certs/ca-certificats.crt
sslCAPath = /etc/ssl/certs/

尝试之前:

git config --global http.sslVerify false

git ssl proxy certificate config
1个回答
0
投票

为了确定:您的用户环境中是否设置了 GIT_SSL_NO_VERIFY 来覆盖相应的全局设置 http.sslVerify?

另外,我不确定您是否应该在引用“https://githubserver.company.com/repository.git/”中看到尾部斜杠“/”。您是在获取目录还是存储库本身?

最可能的解释是证书链损坏或缺少信任。

也许 HTTP 代理服务器由于某种原因行为不当,不允许您设置安全连接。是否支持 SSL/TLS 并且您的请求是否通过适当的网络端口运行?我很好奇您是否能够通过代理从同一目标服务器进行(非 git)HTTPS 下载...

© www.soinside.com 2019 - 2024. All rights reserved.