Git:使用 Bitbucket Server 的服务器证书验证失败

Git:使用 Bitbucket Server 的服务器证书验证失败

我有一个在本地运行且带有证书的 Bitbucket 服务器。我使用以下命令将其添加到密钥库中

openssl pkcs12 -export -in myurl.com.cer -inkey myurl.com.key -out myurl.com.p12
keytool -importkeystore -srckeystore myurl.com.p12 -srcstoretype PKCS12 -destkeystore bitbucket.jks -deststoretype JKS

如果我在 Chrome 中查看服务器,它看起来像这样(看起来不错):

在此处输入图片描述

当我尝试从服务器克隆存储库时,出现以下错误

root@BS01:~# git clone https://source.server.com/scm/p/project.git
Cloning into 'project'...

致命:无法访问'https://source.server.com/scm/p/project.git':服务器证书验证失败。CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile:无

在 Windows 上,错误看起来有点不同:

致命:无法访问'https://source.server.com/scm/p/project.git/':SSL 证书问题:无法获取本地颁发者证书

当我在 Google 上搜索这个错误时,很多解决方案都建议我必须使用 CA 证书而不是自签名证书(也许我误解了概念,但我认为该证书是 CA 证书)或完全禁用 sslVerificaction(这是不可接受的)git 对证书有什么问题以及如何解决这个问题?

答案1

实际上,该证书仅在我的计算机上有效,移动设备也不信任它 - 如果我将整个信任链连接成一个 .pem 文件,如下所示:

-----BEGIN RSA PRIVATE KEY----- 
KEY FROM domain.key
-----END RSA PRIVATE KEY----- 
-----BEGIN CERTIFICATE----- 
domain.crt
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
Intermediate.crt
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
Root.crt
-----END CERTIFICATE-----

并将其添加到 jks 中,它可以按预期工作。

openssl pkcs12 -export -in server.pem \
    -out server.p12 -name  tomcat
keytool -importkeystore -srckeystore server.p12 \
    -srcstoretype pkcs12 -destkeystore bitbucket.jks -deststoretype JKS

相关内容