現在我已經掙扎了好幾天了。我在Windows上使用WebLogic 11g(10.3.4.0)(Linux的行爲相同)。我從http://emo.sourceforge.net/cert-login-howto.html和http://middlewareforum.com/weblogic/?p=312的詳細信息中設置了雙向SSL身份驗證。我使用JMeter作爲具有以下JVM參數的客戶端。獨立Java客戶端的行爲相同。如何使用t3s通過完全客戶端連接到WbLogic JMS隊列以進行雙向SSL身份驗證?
-Djavax.net.ssl.keyStoreType = pkcs12 -Djavax.net.ssl.trustStoreType = jks -Djavax.net.ssl.keyStore = c:/Users/sli/keys/browser.p12 -Djavax.net。調試= SSL -Djavax.net.ssl.keyStorePassword = PASSWORD-Djavax.net.ssl.trustStorePassword =的changeit -Dweblogic.security.SSL.ignoreHostnameVerification =真
它正常工作與T3瘦客戶機(wlthint3client.jar),但是當我切換到完整客戶端(wlfullclient.jar)時它不起作用。其中一個應用程序以某種方式與完整客戶端保持一致它本身就是一個不同的問題。順便說一句,完整的客戶端並不完整,因爲它需要webserviceclient + ssl.jar和cryptoj.jar來進行SSL。它在客戶端投訴。
javax.naming.CommunicationException [根異常是java.net.ConnectException:t3s:// localhost:7503:Destination unreachable;嵌套異常是: com.bea.sslplus.TwoWaySSLHandshakeStageSocketException:在2次握手期間的SocketException;檢查客戶端證書或網絡連接;沒有可用的路由器到目的地]
這裏是服務器端日誌。
< 39146459 SSL版本2與沒有填充> < 39149058 SSL3/TLS MAC> < 39149058接收SSL_20_RECORD> < 39149058 SSL3/TLS MAC> < 39149058接收HANDSHAKE > (未知來源) 在com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(未知來源) 在com.certicom.tls.record.handshake.ServerStateSentHelloDone.handle(未知來源) at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessage(Unknown Source) at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source) at com.certicom.tls.record.MessageInterpreter.interpretContent (Unknown Source) at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source) at com.cert icom.tls.record.ReadHandler.processRecord(來源不明) 在com.certicom.tls.record.ReadHandler.readRecord(來源不明) 在com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(來源不明) 在COM .certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source) at javax.net.ssl.impl.SSLSocketImpl.startHandshake(Unknown Source) at weblogic.server.channels.DynamicSSLListenThread $ 1.run(DynamicSSLListenThread.java:130) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread。的java:176) > < 37447543 SSL版本2與沒有填充> < 37447552 SSL3/TLS MAC> < 37447552接收SSL_20_RECORD> < 37447552 SSL3/TLS MAC> < 37447552 received HANDSHAKE> (未知來源) 在com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(未知來源) 在com.certicom.tls.record.handshake.ServerStateSentHelloDone.handle(未知來源) at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessage(Unknown Source) at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source) at com.certicom.tls.record。 MessageInterpreter.interpretContent(Unknown Source) at com.certicom.tls.record.MessageIn terpreter.decryptMessage(Unknown Source) at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source) at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source) at com.certicom.tls.record .ReadHandler.readUntilHandshakeComplete(Unknown Source) at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source) at javax.net.ssl.impl.SSLSocketImpl.startHandshake(Unknown Source) at weblogic.server.channels。 DynamicSSLListenThread $ 1.run(DynamicSSLListenThread.java:130) 在weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) 在weblogic.work.ExecuteThread.run(ExecuteThread.java:176) >
我已經做了一些研究,發現這(http://stackoverflow.com/questions/2047732/solaris-jms-client-connect-to-weblogic-11g-t3s-security-problem)某人有使用t3s上的完整客戶端進行雙向SSL身份驗證,但鏈接不提供如何。我也嘗試過使用那裏提到的WebLogic安全選項,但它仍然不適用於我。
謝謝你的任何幫助。