问题:
我一直试图从Ubuntu实例中通过企业GitHub服务器的http代理(在git全局配置中设置)克隆一个git存储库。
从代理克隆可以工作,但是从实例(通过代理)进行克隆,我得到以下错误:
致命:无法访问'https://githubserver.company.com/repository.git/':服务器证书验证失败。CAfile: /etc/ssl/certs/ca-Cericates.crt CRLfile:无
我已经尝试下载服务器证书,将其添加到受信任的证书中,并按照许多其他线程中指定的那样,在git配置中指定http.sslCAInfo或http.sslCAPath选项。
显然,其他有此问题的人至少能够调试这个问题,或者通过在git配置中暂时禁用ssl验证来对安全规则进行一次性异常。然而,使用git config --global http.sslVerify false
或任何变体(作为命令标志、环境变量、在本地、全局或系统级别上等)没有任何影响。
这种情况发生在不同步日期/时间的人身上(但是AWS实例和代理中的时间都是通过同一个ntp服务器同步的),或者在Windows上的特定上下文中,但是我在Linux机器上找不到这种git配置的任何其他实例被忽略。
我知道这会对安全造成重大影响,但由于找不到有类似问题的人,我认为我一定是漏掉了什么。
我已经经历了几十个类似的线程,我找不到一个人与我相同的问题。
我试过的是:
我通过了:
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
发布于 2022-08-24 06:58:18
要确定的是:您是否在用户的环境中设置了GIT_SSL_NO_VERIFY以覆盖相应的全局设置http.sslVerify?
此外,我也不确定您是否应该在reference https://githubserver.company.com/repository.git/'中看到一个尾斜杠'/‘。您是在获取目录还是回购本身?
最有可能的解释是证书链中断或信任缺失。
也许de代理服务器的错误行为不允许您设置安全连接。是否支持SSL/TLS,您的请求是否通过适当的网络端口运行?我很好奇您是否能够通过代理从同一目标服务器下载(非git) HTTPS .
https://stackoverflow.com/questions/63490725
复制相似问题