此问题在此处已有答案:
Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?(38个答案)
2天前关闭。
我试图从Java客户端连接SSRS ReportServer与HTTPS协议,它给出javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:java.security.cert.CertPathBuilderException:无法找到证书链但我已在Java Keystore中添加了证书,它是证书使用定义的别名显示的密钥库。但是相同的SSRS请求调用使用HTTP协议。**注意:**我们使用Go-Daddy的SSL证书进行安全通信
3条答案
按热度按时间u7up0aaq1#
您能否验证证书是否已添加到“Java Truststore”而不是Keystore(尽管两者都有.jks扩展名)。
密钥库文件keystore.jks包含ApplicationServer的证书,包括其私钥
信任存储文件cacht.jks包含应用程序服务器的受信任证书
vqlkdk9b2#
当你得到你的证书时,应该有一个p7 b(可能)包含在其中。
本质上,当GoDaddy颁发证书时,它们不是直接从根颁发的。
很可能你有一个从中间机构发出的。
您可以在https://ssl-ccp.godaddy.com/repository?origin=CALLISTO获取中间证书
证书链需要附加到实际证书上,并导入到 * 服务器 * 上。
包含要导入的证书的PEM文件应如下所示:
字符串
在那之后,你不应该有一个需要做任何其他的客户端。
在重读了我的回答之后,我意识到这个过程可能有一点复杂,所以为了使这个更完整的循环,我们开始了。
1.生成密钥对/自签名证书,如PKCS#12容器所示。
1.创建PKCS#10证书签名请求以发送到上述证书的GoDaddy。
1.获取证书(假设为PEM格式)并连接来自https://ssl-ccp.godaddy.com/repository?origin=CALLISTO的颁发链,然后将其从步骤1导入回PKCS#12。
1.将PKCS#12分配为SSRS服务器上的TLS证书存储。
flseospp3#
由于上述错误(PKIX路径构建失败:java.security.cert)而卡住了几个月。Stack Overflow上没有任何帮助。将Oracle Java SE交换为OpenJDK阿苏尔Zulu。砰!问题消失了。