SSL:服务器证书链不完整

时间:2017-11-14 16:02:01

标签: node.js ssl nginx certificate pci-compliance

我从https://www.ssls.com/

购买了一张PositiveSSL通配符

我收到了.ca-bundle一个.crt和一个.p7b的3个文件。

我使用NGINX配置了证书但是我收到了错误:

  

“服务器证书链不完整”

https://www.ssllabs.com/ssltest/analyze.html?d=api.billgun.com

我该如何解决这个问题?

2 个答案:

答案 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
---

生成正确链的最快方法是:

  • 在浏览器中打开您的网站
  • 点击绿色挂锁并显示证书属性
  • 导出链中的每个证书(在您的情况下,您应该获得3个文件:-billguncom.crtCOMODORSADomainValidationSecureServerCA.crtCOMODORSACertificationAuthority.crt
  • 按照从叶到根证书的顺序组合文件:

    cat -- -billguncom.crt COMODORSADomainValidationSecureServerCA.crt COMODORSACertificationAuthority.crt > billgun_com.crt
    
  • 在服务器上安装新证书

  • 测试nginx cofiguration nginx -t
  • 重新启动服务器service nginx restart

答案 1 :(得分:0)

有一个工具可以自动生成一组正确链接的证书。 https://github.com/zakjan/cert-chain-resolver(我是作者。)

用法:

cert-chain-resolver -o domain.bundle.pem domain.pem
  • domain.pem 是您的输入证书
  • domain.bundle.pem 是证书包,您可以在 Web 服务器配置中使用它