- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用 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
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/
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setop
我们在 docker 容器中使用网络服务器。目前我们的公私钥工作正常。我们遇到的问题是,当我们使用 https://www.ssllabs.com/ 测试我们的网站时,我们的 CAFile 没有作为提
我在 PHP 中安装/使用自签名证书时遇到问题。 (背景是:我想使用私有(private)的composer仓库) 我使用 sudo update-ca-certificates 在/etc/ssl/
包含证书的等效参数或方法是什么,以便您可以在 PHP 5.5.* 中建立 ssl 连接。 我坚持使用那个版本,无法更新它,我需要包含一个用于 Composer 更新的证书文件。我知道我必须在 PHP
我正在尝试从一个应用程序的 Ubuntu 服务器连接到 Apple 的推送通知服务。我已经成功生成了我正在使用的 pyAPNS 提供商所需的组合 .pem 证书。但是,当我尝试使用 openssl v
我正在尝试通过 https 克隆一个存储库,出于某种原因,即使我的本地配置说明了从哪里获取 CAFile,它也会尝试使用全局配置中的值。 本地配置: [http] sslCAInfo = c:
从今天早些时候(美国东部标准时间上午 9:35 左右)开始,我在 Google Cloud 日志中收到此错误消息: E 2015-07-09 10:35:51.967 200 779 B
我目前正在尝试在安装了 Plesk (17.5.3) 和 Let's-Encrypt-Extension 的 Ubuntu 服务器上设置 Confluence (6.6.0)。 Confluence
由于信任问题,我无法让 OpenSSL 连接到服务器。我将 CA 证书放在 /etc/ssl/certs/ 上并运行 sudo c_rehash 可以看到已创建正确的文件。我可以看到 CA 证书在 c
我想在 C++ 中使用 libcurl 和 openssl 进行 https 测试。 我有以下代码: curl_easy_setopt(mEasyHandle, CURLOPT_SSL_VERIFYP
我正在尝试直接从 wordpress 管理面板安装插件(而不是手动下载和安装)。我收到这个错误 Downloading install package from http://downloads.wo
如何以 PHP SSL context option cafile 可接受的格式导出证书? 我下面的代码使用 openssl_x509_export 导出 stackoverflow.com 的证书链
我正在使用 Firebase php SDK link并在 Windows 10 上的 XAMMP 服务器上使用 laravel 最新版本,但是当我尝试使用上面的 php SDK 使用 Firebas
我可以使用 ssh 克隆项目来推送,但是当我使用 https 克隆项目时它不起作用。 它向我显示的错误消息是: server certificate verification failed. CAfi
sudo apt-get update W: 获取失败https://get.docker.com/ubuntu/dists/docker/main/binary-amd64/Packages服务器证
如何解决这个错误? failed loading cafile stream: `C:\xampp\apache\bin\curl-ca-bundle.crt' 最佳答案 您没有提供有效的 ca 包文
如果我仅使用证书(带链)和私钥发出 openssl 调用,我会遇到服务器拒绝握手中的客户端证书的问题。 如果我还设置了 cafile 参数并将其指向与证书相同的文件,这个问题就会消失。 即使信息已经在
我正在按照教程 (https://coral.ai/docs/dev-board/get-started/#run-pycoral) 设置边缘 tpu 开发板,并且能够通过 MDT 连接到开发板的外壳
我是一名优秀的程序员,十分优秀!