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命令来获得该证书

+0

它实际上是一个** TrustStore **,他应该将证书导入。查看KeyStore和TrustStore之间的区别http://*.com/questions/318441/truststore-and-keystore-definitions –

+0

yes TrustStore和keyStore是逻辑名称,密钥库保存pvt密钥,并且TrustStore包含主机服务器信任的公共证书。但同一商店可用作密钥库和信任库 – coder

+0

@coder意思是将中间证书(PEM编码)公钥的内容复制并粘贴到证书链框中? 密钥库包含私钥和证书及其相应的公钥。我们只能将此私钥和公钥添加到amazone ec2中。 –