当前位置: 首页 > 知识库问答 >
问题:

服务器证书验证失败。cafile:/etc/ssl/certs/ca-certificates.crt crlfile:none

欧阳勇
2023-03-14
server certificate verification failed. CAfile: /etc/ssl/certs/cacertificates.crt CRLfile: none

共有1个答案

欧阳博超
2023-03-14

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出色的回答所指出的,这将添加所有证书,而不是只添加根CAS。
未经尽职调查就盲目地将所有(任何)证书添加到您的信任商店不是最好的做法。

冗长的回答

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

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

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(证书颁发机构颁发者),请键入A:

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在注释中建议将-servername选项添加到openssl命令中,否则在Valeriy的情况下,该命令不会显示www.github.com的证书。

openssl s_client -showcerts -servername www.github.com -connect www.github.com:443

Findekano在评论中补充道:

curl-config --ca
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
 类似资料:
  • 我浏览了互联网,还没有找到一个解决方案或方法来验证证书时,通过HTTPS连接使用TIDWTTP。 我已经连接了一个idsslohandlersocketopenssl组件作为IOHandler,设置SSLModes,等等https://s3.amazonaws.com它无法验证证书。 OpenSSL(Indy)提供 “连接SSL时出错。SSL3\u获取\u服务器\u证书:证书验证失败” OpenS

  • 问题内容: 我正在使用XAMPP进行开发。最近,我将xampp的安装从旧版本升级到1.7.3。 现在,当我卷曲启用HTTPS的网站时,出现以下异常 致命错误:消息为“ cURL资源”的未捕获异常“ Re​​questCore_Exception”;资源ID为55;cURL错误:SSL证书问题,请验证CA证书是否正确。详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CE

  • 误差 PHP警告:stream_socket_client():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_Server_Certifice:证书验证失败

  • 问题内容: 我遇到了一个我无法弄清楚如何调试的证书的奇怪问题。当我在一台特定服务器上的docker容器内运行wget时,它无法验证证书。相同的wget在服务器计算机本身上(在docker外部)可以正常工作,并且可以在不同服务器上的同一docker容器内运行。 这是Docker容器的设置: 响应为: 由于此过程在其他服务器上也可以使用,因此该问题似乎只能是该服务器本身上的某些证书​​问题。但是我必须

  • 我不能通过pip安装安装任何外部python模块。我已经正确安装了python,但如果我使用pip_install它显示我这个错误。 下面是我运行

  • 问题内容: 在Windows Vista SP2 + Python 2.7.10上,我可以连接到https://www.python.org,但不能连接到https://codereview.appspot.com 剧本: 并输出: 如何解决问题,https://codereview.appspot.com/到底有什么问题? 问题答案: 我的猜测是,它与OpenSSL中的替代链处理有关,如Pyth