我可以通过使用ssh的克隆项目推送,但它不工作时,我克隆项目与https。

它显示的错误信息是:

server certificate verification failed. CAfile: /etc/ssl/certs/cacertificates.crt CRLfile: none

当前回答

我遇到了詹金斯的问题。当我更新证书时,我开始面临这个错误。

stderr fatal: unable to access server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt

所以我已经在下面的文件中添加了我的新证书:

/etc/ssl/certs/ca-certificates.crt

该文件的内容如下所示:

-----BEGIN CERTIFICATE-----
blahblha
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
blahblha
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
blahblha
-----END CERTIFICATE-----

只要在底部附上你的证书:

-----BEGIN CERTIFICATE-----
blahblha
-----END CERTIFICATE-----

其他回答

导致这个问题的另一个原因可能是你的生物钟可能走错了。证书是时间敏感的。

查询当前系统时间。

date -R

您可以考虑安装NTP以从全局NTP池自动将系统时间与可信的internet时间服务器同步。例如,在Debian/Ubuntu上安装:

apt-get install ntp

我知道这是旧的,但有时错误再次弹出。如果您确信可以信任本地安装,那么只需在变量部分中添加:GIT_SSL_NO_VERIFY: "true"。通过这种方式,您只需禁用证书验证。

此解决方案与本文提出的解决方案类似,但它仅适用于当前git树,而不适用于全局git配置。

将证书和bundle复制到一个.crt文件中,并确保文件中的证书之间有一个空行。

在互联网上尝试了所有方法之后,我在GitLab服务器上使用了这个方法。

注意:这具有重大的安全影响。

打开终端,执行以下命令:

export GIT_SSL_NO_VERIFY=1

它为我工作,我使用Linux系统。

注意:这具有重大的安全影响。

如果您在专用网络中使用git服务器,并使用自签名证书或IP地址证书;你也可以简单地使用git全局配置来禁用SSL检查:

git config --global http.sslverify "false"