我在本地GlassFish v3上运行了一个Web应用程序。该应用程序连接到另一台服务器(非本地)上的REST Web服务。连接通过HTTPS完成。在尝试连接时,我得到:
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
我将外部ws目录中的证书添加到本地java密钥库,但是没有解决问题。
我是否必须指示GlassF使用本地密钥库或其他东西?或者只是将它添加到java密钥库中它也可以用于本地GlassF吗?
答案 0 :(得分:1)
您有两种选择:
1。)用您的密钥库替换 $ JAVA_HOME / jre / lib / security 目录中的cacerts。
2.。)在运行时更改密钥库,如下所示:
System.setProperty("javax.net.ssl.keyStore", <path to the new keystore>);
System.setProperty("javax.net.ssl.keyStorePassword",<password of the keystore>);
System.setProperty("javax.net.ssl.trustStore",<path to the new keystore>);
希望有所帮助!
编辑:您可能会发现this问题也很有帮助。选定的答案建议:
1。)将密钥库文件复制到C:\ glassfish3 \ glassfish \ domains \ domain1 \ config \
2.。)将GlassFish配置为使用SSL