SSL 证书链不完整

SSL Certificate Chain Incomplete

谁能解释一下 SSL Labs 测试的 "This server's certificate chain is incomplete" 到底是什么意思以及如何修复它?我所做的具体步骤

  1. 使用独立模块 (./letsencrypt-auto --standalone) 通过 Let's Encrypt 客户端生成 Let's Encrypt 证书
  2. 这产生了 4 个文件:cert1.pem、chain1.pem、完整chain1.pem、privkey1.pem
  3. 生成 PKCS12 文件以导入证书:

openssl pkcs12 -export -in cert1.pem -inkey privkey1.pem -out cert_and_key.p12 -name certificate -CAfile fullchain1.pem -caname root

  1. 创建密钥库:

keytool -importkeystore -deststorepass Pas5w0rd123 -destkeypass Pas5w0rd123 -destkeystore cert.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -srcstorepass Pas5w0rd123 -alias cert

keytool -import -trustcacerts -alias root -file chain1.pem -keystore cert.jks

  1. 现在在服务器上使用创建的 cert.jks 并使用 SSL Labs 对其进行测试,SSL 测试报告此问题:"This server's certificate chain is incomplete."。

非常感谢您的回答!

证书链中似乎缺少证书 Let's Encrypt Authority X3。

检查您的 pkcs12 是否确实包含私钥、public 密钥和认证链。最好的选择是使用 GUI portecle (http://portecle.sourceforge.net/)

创建 pkcs12 时,'-CAfile fullchain1.pem' 应该是 '-certfile fullchain1.pem'。