github上:服务器证书验证失败
我刚刚创建其中一个GitHub的账户和一个仓库,而是试图通过github上:服务器证书验证失败
git clone https://github.com/<user>/<project>.git
创建使用recommende URL本地工作副本时,我得到这样
错误致命:无法访问'https://github.com/<user>/<project>.git':服务器证书验证失败。凭证档案错误:/家庭/ <用户> /.ssl/trusted.pem CRLfile:无
我在Debian的杰西,我本来期望Debian和GitHub上既提供/依靠的是先进的普遍接受CA,但显然我的系统不信任GibHub的证书。
任何简单的方法来解决这个问题(没有经常推荐的“GIT_SSL_NO_VERIFY = true”黑客和类似的解决方法)?
编辑:
其他信息:
- 的CA证书软件包安装。
- 安装cacert.org的证书为@VonC建议的 没有任何改变。
- 我个人的〜/ .ssl/trusted.pem文件的确包含几个条目,但要 说实话,我不记得是哪所添加的证书从...
-
来到时,删除〜/。 SSL/trusted.pem,git的错误消息
改变fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)
编辑:
@ VonC的咨询,以确定混帐https.sslCAinfo选项让我在正确的轨道上 - 我刚才添加的将cacert.org CA下载到我的电脑上rusted.pem,现在git不再抱怨了。
首先确保您的证书已安装在您的Debian中/etc/ssl/certs
。
如果没有,重新安装:
sudo apt-get install --reinstall ca-certificates
自那package does not include root 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 mentio ns另一个潜在原因:(in the comments):
这是时钟。 NTP服务器关闭,系统时钟设置不正确,我没有注意到或者认为最初需要检查,并且不正确的时间导致验证失败。
我也收到相同的消息。具体来说,我说致命:无法访问'网址/':服务器证书验证失败。 CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile:无。我通过ssh使用git。这会有所作为吗? –
@CodedContainer是的确实:CA(证书颁发机构)验证TLS证书的公钥(在https中使用)。 ssCAinfo对ssh url没有影响。你确定你的远程URL不*以https开头吗? – VonC
嗯。我今天突然开始出现这个错误,只在一个设备(一个Raspberry Pi)上,自上次工作以来一直没有被触及。我跑完了这个答案中的所有步骤,并且抓取了一些新的证书,但是我仍然得到了同样的错误(git URL确实以https开头,它在gitlab.com上)。任何其他想法? –
您也可以通过键入禁用SSL验证:
git config --global http.sslverify false
谢谢:)
它也可以自签名证书等关闭SSL验证全球范围内是不安全的。您可以安装证书,以便系统可以看到证书,但证书应该完全正确。
或者你可以用一个时间配置参数克隆,因此命令将是:
git clone -c http.sslverify=false https://myserver/<user>/<project>.git;
GIT会记住假值,您可以检查它在<project>/.git/config
文件。
提到的CA文件是什么?也许你的SSL没有找到电子证书?你安装了它们吗? – Reactormonk
我编辑了答案,以确保git引用这些ca. – VonC