为了账号安全,请及时绑定邮箱和手机立即绑定

SSLHandshakeException:PKIX 路径构建失败,无法找到证书链

SSLHandshakeException:PKIX 路径构建失败,无法找到证书链

呼啦一阵风 2022-08-17 10:31:46
我正在尝试从Java客户端将SSRS ReportServer与HTTPS协议连接,它给出了javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:java.security.cert.CertPathBuilder例外:无法找到证书链,但我已在Java Keystore中添加了证书,该密钥库显示证书具有定义的别名。但相同的 SSRS 请求调用正在使用 HTTP 协议。注意:我们使用来自 Go-Daddy 的通配符证书进行安全通信
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您能否验证证书是否已添加到“Java Truststore”而不是 Keystore(尽管两者都有 .jks 扩展名)。看看这个 https://docs.oracle.com/cd/E19830-01/819-4712/ablqw/index.html

密钥库文件 keystore.jks 包含应用程序服务器的证书,包括其私钥

信任库文件 cacerts.jks 包含应用程序服务器的受信任证书


查看完整回答
反对 回复 2022-08-17
?
撒科打诨

TA贡献1934条经验 获得超2个赞

当您获得证书时,应该包含一个p7b(可能)。

从本质上讲,当 GoDaddy 颁发证书时,它们不是直接从根颁发的。

您很可能有一个从中间机构颁发的。

您可以在 https://ssl-ccp.godaddy.com/repository?origin=CALLISTO

需要将证书链追加到实际证书并导入到服务器上

包含要导入的证书的 PEM 文件应如下所示:

<actual certificate>
<intermediate certificate>
[<intermediate certificate> ...]

之后,您就不需要在客户端上执行任何其他操作。

编辑

在重新阅读了我的答案后,我意识到这个过程可能有一点模糊。因此,为了把这个更完整的循环带到这里,我们开始了。

  1. 生成密钥对/自签名证书,如 PKCS#12 容器。

  2. 创建 PKCS#10 证书签名请求以发送到上述证书的 GoDaddy。

  3. GoDaddy 返回已签名的 X.509 证书(通常包含有关如何安装它的说明)。

  4. 获取证书(假设 PEM 格式)并连接 https://ssl-ccp.godaddy.com/repository?origin=CALLISTO 的颁发链,然后从步骤 1 将其导入回 PKCS#12。

  5. 将 PKCS#12 分配为 SSRS 服务器上的 TLS 证书存储。


查看完整回答
反对 回复 2022-08-17
  • 2 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号