2013-03-14 99 views
0

我有一個在GlassFish v3上本地運行的Web應用程序。該應用連接到另一臺服務器(不是本地)上的REST Web服務。連接通過HTTPS完成。雖然試圖連接我得到:GlassFish連接到SLL Web服務

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

你有兩個選擇:

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的\域\ DOMAIN1 \ CONFIG \

2)配置GlassFish使用SSL