我刚刚创建了一个github帐户和一个存储库,但是当我试图通过
git clone https://github.com/<user>/<project>.git
我得到一个类似这样的错误
致命:无法访问“/
我在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不再抱怨了。
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