GlassFish连接到SLL Web服务

时间:2013-03-14 17:02:05

标签: java rest ssl glassfish

我在本地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吗?

1 个答案:

答案 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