提问者:小点点

github:服务器证书验证失败


我刚刚创建了一个github帐户和一个存储库,但是当我试图通过

git clone https://github.com/<user>/<project>.git

我得到一个类似这样的错误

致命:无法访问“/.git” rel=“noreferrer”>https://github.com/

我在Debian Jessie上,我本希望Debian和GitHub都能提供/依赖一系列公认的CA,但显然我的系统不信任GibHub的证书。

有什么简单的方法可以解决这个问题(没有经常推荐的“GIT_SSL_NO_VERIFY=true”破解和类似的解决方法)?

编辑:

附加信息:

> < Li > ca证书包已安装。 < li >按照@VonC的建议安装cacert.org的证书并没有改变任何事情。 < li >我个人~/。ssl/trusted.pem文件确实包含几个条目,但是说实话,我不记得添加的证书来自哪里... < li>

当移除~/时。ssl/trusted.pem,git错误消息更改为

fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)

编辑:

@VonC关于git https. sslCAinfo选项的建议让我走上了正轨——我刚刚将下载的cacert.orgCA添加到我的信任.pem中,现在git不再抱怨了。


共3个答案

匿名用户

2016年:首先确保您在<code>/etc/ssl/certs</code>中的Debian上安装了证书。

如果没有,请重新安装它们:

sudo apt-get install --reinstall ca-certificates

由于该包不包括根证书,请添加:

sudo mkdir /usr/local/share/ca-certificates/cacert.org
sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
sudo update-ca-certificates

请确保您的git确实引用了这些CA:

git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

Jason C提到了另一个潜在的原因(在评论中):

是时钟。NTP 服务器已关闭,系统时钟设置不正确,我最初没有注意到或想检查,并且不正确的时间导致验证失败。

证书对时间敏感。

2022: Auspex在评论中补充道:

ca-certificates确实包含根证书。< br >它不包含CAcert根证书。

这在6 1/2年前可能是一个很好的答案,但这些证书在当时是可疑的,并且没有改进。
它们不在ca-证书包中是有原因的。

现在我们有LetsEncrypt,所以每个人都有可靠的审计证书,没有人需要依赖CAcert。

匿名用户

您还可以通过键入以下内容来禁用SSL验证(如果项目不需要除登录名/密码以外的高级别安全性):

< code>git配置-全局http.sslverify false

享受 git :)

匿名用户

当我试图从Linux控制台的Windows子系统上的Github克隆存储库时,也遇到了这个错误:

致命:无法访问'http://github.com/docker/getting-started.git/':服务器证书验证失败。ca文件:/etc/ssl/certs/ca-certificates.crt CRL文件:无

@VonC关于这个主题的解决方案对我不起作用。

Fabian Lee文章中的解决方案为我解决了这个问题:

openssl s_client -showcerts -servername github.com -connect github.com:443 </dev/null 2>/dev/null | sed -n -e '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/ p'  > github-com.pem
cat github-com.pem | sudo tee -a /etc/ssl/certs/ca-certificates.crt