Java SSL证书链不完整

Java SSL证书链不完整,java,ssl,encryption,ssl-certificate,keytool,Java,Ssl,Encryption,Ssl Certificate,Keytool,有人能解释一下SSL实验室测试“此服务器的证书链不完整”的确切含义以及如何修复它吗?我所做的事情的确切步骤 使用独立模块(./letsencrypt auto--standalone)通过Let's Encrypt客户端生成Let's Encrypt证书 这产生了4个文件:cert1.pem、chain1.pem、fullchain1.pem、privkey1.pem 生成PKCS12文件以导入证书: openssl pkcs12-export-in cert1.pem-inkey privke

有人能解释一下SSL实验室测试“此服务器的证书链不完整”的确切含义以及如何修复它吗?我所做的事情的确切步骤

  • 使用独立模块(./letsencrypt auto--standalone)通过Let's Encrypt客户端生成Let's Encrypt证书
  • 这产生了4个文件:cert1.pem、chain1.pem、fullchain1.pem、privkey1.pem
  • 生成PKCS12文件以导入证书:
  • openssl pkcs12-export-in cert1.pem-inkey privkey1.pem-out cert_and_key.p12-名称证书-CAfile fullchain1.pem-卡纳姆根

  • 创建密钥库:
  • keytool-导入密钥库-deststorepass Pas5w0rd123-destkeypass Pas5w0rd123-destkeystore cert.jks-srckeystore cert_和_key.p12 -srcstoretype PKCS12-srcstorepass Pas5w0rd123-别名证书

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

  • 现在,在服务器上使用创建的cert.jks并使用SSL实验室对其进行测试,SSL测试报告此问题:“此服务器的证书链不完整。”
    非常感谢您的回答

    证书链中似乎缺少证书,让我们加密授权X3

    检查pkcs12是否确实包含私钥、公钥和证书链。最好的选择是使用GUI portecle()


    创建pkcs12时“-CAfile fullchain1.pem”应为“-certfile fullchain1.pem”。

    很可能表示根目录不在SSL实验室信任包中。他们包括让我们加密根证书吗?佩德罗夫,谢谢你的回复。1) 是的,它确实包含它们-您可以按照上面的步骤重新创建与我完全相同的jks文件。2) 服务器正在使用同一个jks文件作为密钥库和信任库-如果您感兴趣,它是一个SparkJava服务器,使用spark.spark.secure(keystore,password,null,null)保护它。看起来没问题。。。fullchain1.pem中是否也包含“DST根CA X3”?是的,根据SSL实验室,证书路径如下:1。由服务器发送-我的域,2。额外下载-让我们加密授权X3,3。信任存储中-DST根CA X3自签名“额外下载”是SSLLAB的输出??。它应该是“由服务器发送的”,似乎证书链中缺少证书,让我们加密授权X3。创建pkcs12时“-CAfile fullchain1.pem”应为“-certfile fullchain1.pem”。请与portecle确认您在jks中有证书“Let's Encrypt Authority X3”