2012-03-05 43 views
1

嗨,我使用tomcat 6作爲網絡服務器。我有兩個webbapplication安裝在同一端口上的tomcat上。說App1和App2。 App1連接到 App2。然後App2再次使用jessionid連接到App1(所以app2發送的url是http://localhost/App1;jessionid=sessionidOfAp11) 只要我在http上,它就可以很好地工作。但是,只要我移動到https App2不能連接到App1與相同的網址。 另一個有趣的事實是,如果我在Brower上鍵入相同的URL,它將連接到App1。 我不明白這裏會有什麼祕密嗎?獲取javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException。無法連接到HTTPS上的應用程序?

編輯: - 這裏是確切的錯誤我得到

Caused by: sun.security.validator.ValidatorException: PKIX path building failed:  sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.validator.PKIXValidator.doBuild(Unknown Source) 
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) 
at sun.security.validator.Validator.validate(Unknown Source) 
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source) 
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) 
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) 
... 53 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) 
at java.security.cert.CertPathBuilder.build(Unknown Source) 

回答

傢伙感謝答覆。阿隆與ramesh答案我也不得不做http://www.coderanch.com/t/134384/Security/Getting-error-No-subject-alternative建議的東西。

+0

「App1連接到App2」是什麼意思? – 2012-03-05 12:29:42

+0

你對這兩個應用程序使用https嗎?還是僅適用於App2? – 2012-03-05 12:33:24

+0

基本上點擊App1上的鏈接就可以進入App2。然後App2再次連接到App1檢查一些邏輯與api URLConnection conn = url.openConnection(); – 2012-03-05 12:37:37

回答

1

因爲App1使用https連接到App2。 App2的證書應該存在於虛擬機的信任存儲中,其中App1運行

請參閱here以瞭解如何將證書添加到密鑰庫。

您可以使用這些系統屬性

-Djavax.net.ssl.trustStore="C:/test/truststore" 
    -Djavax.net.ssl.trustStorePassword="test". 

而且你沒有在客戶端和服務器那裏

  • 同一VM
  • 同一臺機器
  • 通信通過https設置信任
  • 專用網絡
+0

Ramesh我應該如何添加App2的證書應該存在於App1所在的虛擬機的信任存儲區中 – 2012-03-05 12:52:48

+0

如果同一個虛擬機只指向信任庫到您的服務器證書文件。 – 2012-03-05 12:55:50

+0

<連接器 端口= 「8443」 maxThreads = 「200」 方案= 「HTTPS」 安全= 「真」 SSLEnabled = 「真」 keystoreFile = 「$ {的user.home} /。密鑰庫」 keystorePass = 「的changeit」 clientAuth =「false」sslProtocol =「TLS」/> – 2012-03-05 13:00:31

0

好像你需要從{tomcat_home}/bin文件夾(windows下的tcnative-1.dll,或者* nix下的tcnative-1.so)中刪除本地的tomcat庫。如果本機庫位於classpath中,Tomcat將使用APR。閱讀更多關於配置SSL的信息here

+0

bin文件夾下沒有這樣的庫 – 2012-03-05 12:54:35

相關問題