2011-08-23 151 views
0

我在weblogic 10.3.3上有一個Web應用程序,它是調用安全Web服務的客戶端。 注:我已經能夠通過一個獨立的Java類來測試Web服務通過以下設置 的兩個屬性:weblogic上的Web服務客戶端應用程序調用Web服務

System.setProperty("javax.net.ssl.keyStore", "C:/keystore.jks"); 
    System.setProperty("javax.net.ssl.keyStorePassword", "######"); 

但是當我嘗試部署客戶端應用程序到WebLogic,它給我的以下錯誤:

weblogic.wsee.jaxrpc.soapfault.WLSOAPFaultException: Failed to receive m 
essage javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain receive 
d from ******* was not trusted causing SSL handshake failure. 
     at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(Unknow 
n Source) 
     at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknow 
n Source) 
     at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown 
Source) 
     at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown 
Source) 
     at com.certicom.tls.record.handshake.ClientStateReceivedServerHello.hand 
le(Unknown Source) 
     at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMes 
sage(Unknown Source) 
     at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMes 
sages(Unknown Source) 
     at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown S 
ource) 

在weblogic控制檯中,我檢查了「SSL偵聽端口已啓用」複選框。 在密鑰庫選項卡中,我已選擇「自定義標識和標準信任庫」。對於自定義標識,我指向C:/keystore.jks。

回答

1

密鑰存儲區是你在哪裏把你的密鑰。你會用這些來證明你對你的同伴是誰。這很可能是「自定義身份」的含義。 信任庫是您放置信任錨的地方。這些是您已經信任的證書,並且您的對等方必須爲您呈現以信任存儲區中的一個證書結尾的證書鏈。作爲退化情況,您可以將對等證書本身放入此信任庫中。這種退化情況必須用於自簽名證書。

對於大多數正常的SSL使用,truststore包括像Verisign,Thawte,GoDaddy,Comodo,GlobalSign等衆所周知的CA根。Oracle JRE在通常名爲cacerts的文件中包含一個信任庫,其中包含大量此類CA根甲骨文認爲應該在那裏。這很可能是「標準信任商店」的含義。

我猜你的同事正在使用自簽名證書。因此,您應該使用包含此證書的自定義信任庫。