gpt4 book ai didi

certificate - 服务器证书验证失败。 CAfile :/etc/ssl/certs/ca-certificates. crt CRLfile:无

转载 作者:行者123 更新时间:2023-12-01 16:55:59 26 4
gpt4 key购买 nike

我可以使用 ssh 克隆项目来推送,但是当我使用 https 克隆项目时它不起作用。

它向我显示的错误消息是:

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

最佳答案

TLDR:

hostname=XXX
port=443
trust_cert_file_location=`curl-config --ca`

sudo bash -c "echo -n | openssl s_client -showcerts -connect $hostname:$port -servername $hostname \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
>> $trust_cert_file_location"

警告:如 gareththered 中所述非常好answer ,这会添加所有证书,而不仅仅是根 CA。
在没有尽职调查的情况下盲目地将所有(任何)证书添加到您的 trustStore 并不是最好的做法。

<小时/>

长答案

基本原因是您的计算机不信任签署Gitlab 服务器上使用的证书证书颁发机构。这并不意味着该证书是可疑的,但它可能是自签名的或由不在操作系统 CA 列表中的机构/公司签名。要避免计算机上的问题,您需要做的就是告诉它信任该证书 - 如果您没有任何理由怀疑它。

您需要检查您的 gitLab 服务器使用的 Web 证书,并将其添加到您的 </git_installation_folder>/bin/curl-ca-bundle.crt 中.

要在不检查所述证书的情况下检查克隆是否至少可以工作,您可以设置:

export GIT_SSL_NO_VERIFY=1
#or
git config --global http.sslverify false

但这仅用于测试,如“SSL works with browser, wget, and curl, but fails with git”或此blog post中所示。 .

检查您的 GitLab 设置,位于 issue 4272 中.

<小时/>

要获取该证书(您需要将其添加到 curl-ca-bundle.crt 文件中),请输入:

echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpsGitlabPort \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

(其中“yourserver.com ”是您的 GitLab 服务器名称,YourHttpsGitlabPort 是 https 端口,通常为 443 )

要检查 CA(证书颁发机构),请键入:

echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpsGilabPort \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
| openssl x509 -noout -text | grep "CA Issuers" | head -1

注:Valeriy Katkov建议in the comments添加-servername openssl 命令的选项,否则该命令不会显示 www.github.com 的证书以瓦莱里为例。

openssl s_client -showcerts -servername www.github.com -connect www.github.com:443
<小时/>

Findekano添加in the comments :

to identify the location of curl-ca-bundle.crt, you could use the command

curl-config --ca
<小时/>

另外,请参阅我最近的回答“github: server certificate verification failed”:您可能必须重新安装这些证书:

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 config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

关于certificate - 服务器证书验证失败。 CAfile :/etc/ssl/certs/ca-certificates. crt CRLfile:无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21181231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com