我正在尝试使用来自Java客户端的HTTPS协议连接SSRS ReportServer,它给出了javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:java.security.cert.CertPathBuilderException:无法找到证书链但是我在Java Keystore中添加了证书,它是证书显示的密钥库,带有定义的别名。但是相同的SSRS请求调用正在使用HTTP协议。注意:我们使用Go-Daddy的通配符证书进行安全通信
您是否可以验证证书是否已添加到“Java Truststore”而非Keystore(尽管两者都具有.jks扩展名)。看看这个https://docs.oracle.com/cd/E19830-01/819-4712/ablqw/index.html
密钥库文件keystore.jks包含Application Server的证书,包括其私钥
Truststore文件cacerts.jks包含Application Server的可信证书
当你拿到证书时,应该包含一个p7b(可能)。
基本上,当GoDaddy颁发证书时,它们不会直接从根发布。
很可能你有一个中级机构发行的。
您可以在https://ssl-ccp.godaddy.com/repository?origin=CALLISTO获得中间证书
证书链需要附加到实际证书并导入服务器。
包含要导入的证书的PEM文件应如下所示:
<actual certificate>
<intermediate certificate>
[<intermediate certificate> ...]
之后,您不需要在客户端上执行任何其他操作。
编辑
在重新阅读我的答案之后,我意识到这个过程可能会有一些模糊不清。因此,我们努力在这里实现更加完整的循环。