2011-04-06 49 views
1

我試圖使用https安全託管的Webservice。無法使用Java/Glassfish使用SSL保護的webservice

我使用Java和GlassFish和我得到了以下錯誤:

信息:HTTP傳輸錯誤:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:沒有名字匹配TESTDOMAIN .COM發現

的事情是,這個特定的服務器用於測試和它的使用生產許可證(帶有CN = domain.com)

我已經添加了domain.com證書到我的GlassFish域cacerts keystore使用keytool -importcert並且它不起作用。

我也試圖創建一個具有CN = testdomain.com自簽名證書並將其添加到cacerts的密鑰存儲和它沒有工作,要麼...

那麼,如何配置Java/Glassfish的消耗這個Web服務?

回答

-1

自簽名證書需要安裝在您的Java客戶端的密鑰存儲區中。而testdomain.com應該使用dns來解析。

+0

客戶端與它無關。在這種情況下,Glassfish是客戶。您的第二條評論是毫無意義的:域*通過DNS解析。 – EJP 2011-04-07 05:12:59

0

自簽名證書需要安裝在Web服務的密鑰存儲區中,其中包含私鑰,,並導入Glassfish的信任庫

1

服務器證書的CN應與客戶端連接的URL中的域匹配。如果仍然不起作用,我會檢查IP是否映射到這個主機名(反向DNS)。它是驗證它的客戶端。如果您想繞過此主機名驗證,請參閱我的文章中的示例代碼:http://jakubneubauer.wordpress.com/2011/09/06/java-webservice-over-ssl/

原理是您將自己的HostnameVerifier提供給服務客戶端代理。

相關問題