2011-08-23 150 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根甲骨文认为应该在那里。这很可能是“标准信任商店”的含义。

我猜你的同事正在使用自签名证书。因此,您应该使用包含此证书的自定义信任库。