javax.net.ssl.SSLHandshakeException
问题描述:
最近,我们的一个java应用程序试图运行amazone负载均衡器的SSL保护Web服务,该服务的签名由GoDaddy签名。我们没有将公钥证书链文件(PEM编码)的内容复制并粘贴到“证书链”框中。现在我们看到以下错误:javax.net.ssl.SSLHandshakeException
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
。有没有办法解决这个异常?
答
此错误表示您的java密钥库不具有您尝试连接的服务的ssl证书。 您需要将GoDaddy/Intermediate CA的公共证书添加到您的java密钥库中。 你可以使用keytool命令来获得该证书
它实际上是一个** TrustStore **,他应该将证书导入。查看KeyStore和TrustStore之间的区别http://stackoverflow.com/questions/318441/truststore-and-keystore-definitions –
yes TrustStore和keyStore是逻辑名称,密钥库保存pvt密钥,并且TrustStore包含主机服务器信任的公共证书。但同一商店可用作密钥库和信任库 – coder
@coder意思是将中间证书(PEM编码)公钥的内容复制并粘贴到证书链框中? 密钥库包含私钥和证书及其相应的公钥。我们只能将此私钥和公钥添加到amazone ec2中。 –