我可以通过使用ssh的克隆项目推送,但它不工作时,我克隆项目与https。
它显示的错误信息是:
server certificate verification failed. CAfile: /etc/ssl/certs/cacertificates.crt CRLfile: none
我可以通过使用ssh的克隆项目推送,但它不工作时,我克隆项目与https。
它显示的错误信息是:
server certificate verification failed. CAfile: /etc/ssl/certs/cacertificates.crt CRLfile: none
当前回答
导致这个问题的另一个原因可能是你的生物钟可能走错了。证书是时间敏感的。
查询当前系统时间。
date -R
您可以考虑安装NTP以从全局NTP池自动将系统时间与可信的internet时间服务器同步。例如,在Debian/Ubuntu上安装:
apt-get install ntp
其他回答
我在树莓派2上安装了Xubuntu,发现时间上也有同样的问题,NTP和自动服务器同步是关闭的(或者没有安装)。得到国家结核控制规划
sudo apt-get install ntp
将“时间及日期”由“手动”改为“与互联网服务器保持同步”
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates -y
sudo update-ca-certificates
对我有用。
这可能听起来微不足道;然而,修正我的约会日期,问题就解决了。检查你的日期和时间是否正确。
最后更新:2021年9月30日|参见所有文档
一个平台是否能够验证Let’s Encrypt证书的主要决定因素是该平台是否信任ISRG的“ISRG Root X1”证书。在2021年9月之前,一些平台可以验证我们的证书,即使他们不包括ISRG根X1,因为他们信任IdenTrust的“DST根CA X3”证书。从2021年10月起,只有那些信任ISRG Root X1的平台才会验证Let’s Encrypt证书(Android除外)。
当前系统
如果你的系统是最新的,但由于某种原因自动更新不起作用,应该有足够的:
apt update
apt upgrade
sudo dpkg-reconfigure ca-certificates
在reconfigure阶段,取消选择“DST根CA X3”证书
过时的系统
要解决,在旧的Linux服务器上,如Ubuntu 16或Debian 8 jessie,需要几个步骤:
upgrade openssl to anything >=1.0.2 On Debian jessie enable backports source, add this line to sources.list: deb http://archive.debian.org/debian jessie-backports main contrib non-free and do apt-get install -t jessie-backports openssl ensure security updates for ca-certificates package apt upgrade download latest LetsEncrypt root CA certs: sudo curl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt -o /usr/local/share/ca-certificates/isrgrootx1.crt sudo curl -k https://letsencrypt.org/certs/letsencryptauthorityx1.pem.txt -o /usr/local/share/ca-certificates/letsencryptauthorityx1.crt sudo curl -k https://letsencrypt.org/certs/letsencryptauthorityx2.pem.txt -o /usr/local/share/ca-certificates/letsencryptauthorityx2.crt sudo curl -k https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem.txt -o /usr/local/share/ca-certificates/letsencryptx1.crt sudo curl -k https://letsencrypt.org/certs/lets-encrypt-x2-cross-signed.pem.txt -o /usr/local/share/ca-certificates/letsencryptx2.crt sudo curl -k https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem.txt -o /usr/local/share/ca-certificates/letsencryptx3.crt sudo curl -k https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem.txt -o /usr/local/share/ca-certificates/letsencryptx4.crt sudo dpkg-reconfigure ca-certificates during reconfigure stage, please deselect "DST Root CA X3" certificate
在这些步骤之后,apt update应该适用于基于LetsEncrypt的源代码,wget和curl应该不会抱怨。
特别注意curl -k允许连接“不安全”的SSL服务器,因为LetsEncrypt证书不受信任。
今天我在freedesktop.org上使用Git for Windows时遇到了这个问题。我把git版本从2.28更新到2.35,问题就解决了。可能是windows版本的集成shell环境没有更新的证书。
希望这对使用Windows版本的用户有所帮助。