我收到了.ca-bundle
一个.crt
和一个.p7b
的3个文件。
我使用NGINX配置了证书但是我收到了错误:
“服务器证书链不完整”
https://www.ssllabs.com/ssltest/analyze.html?d=api.billgun.com
我该如何解决这个问题?
答案 0 :(得分:0)
服务器证书链不完整
表示您没有中间证书,证书已过期或订单错误。
您似乎没有任何中间证书:https://www.sslshopper.com/ssl-checker.html#hostname=https://api.billgun.com/。
当您在浏览器中打开您的网站时,您将获得绿色挂锁,因为浏览器可以下载缺少的中间证书,但其他工具将无法连接,即。 curl
:
curl -I 'https://api.billgun.com/'
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
More details here: http://curl.haxx.se/docs/sslcerts.html
或openssl
:
openssl s_client -connect api.billgun.com:443
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, OU = PositiveSSL Wildcard, CN = *.billgun.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, OU = PositiveSSL Wildcard, CN = *.billgun.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=PositiveSSL Wildcard/CN=*.billgun.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
---
生成正确链的最快方法是:
-billguncom.crt
,COMODORSADomainValidationSecureServerCA.crt
,COMODORSACertificationAuthority.crt
)按照从叶到根证书的顺序组合文件:
cat -- -billguncom.crt COMODORSADomainValidationSecureServerCA.crt COMODORSACertificationAuthority.crt > billgun_com.crt
在服务器上安装新证书
nginx -t
service nginx restart
答案 1 :(得分:0)
有一个工具可以自动生成一组正确链接的证书。 https://github.com/zakjan/cert-chain-resolver(我是作者。)
用法:
cert-chain-resolver -o domain.bundle.pem domain.pem