Solaris JMSクライアントはウェブロジック11G T3Sセキュリティ問題に接続します

StackOverflow https://stackoverflow.com/questions/2047732

質問

Solaris ServerでWebLogic T3Sプロトコルを接続しようとすると、このエラーが表示されます。

java.lang.IllegalStateException: Not enough cryptography available to enable a cipher suite!
        at com.certicom.tls.interfaceimpl.TLSSystem.resetCipherSuiteSupport(Unknown Source)
        at com.certicom.tls.interfaceimpl.TLSSystem.setCertificateSupport(Unknown Source)
        at com.certicom.tls.interfaceimpl.TLSSystem.<init>(Unknown Source)
        at com.certicom.tls.interfaceimpl.TLSSystem.<init>(Unknown Source)
        at com.certicom.net.ssl.SSLContext.<init>(Unknown Source)
        at com.bea.sslplus.CerticomSSLContext.<init>(Unknown Source)
        at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at weblogic.security.utils.SSLSetup.getSSLDelegateInstance(SSLSetup.java:122)
        at weblogic.security.utils.SSLContextWrapper.<init>(SSLContextWrapper.java:48)
        at weblogic.security.utils.SSLContextWrapper.getInstance(SSLContextWrapper.java:43)
        at weblogic.security.utils.SSLSetup.getSSLContext(SSLSetup.java:238)
        at weblogic.security.SSL.SSLClientInfo.getSSLSocketFactory(SSLClientInfo.java:101)
        at weblogic.socket.ChannelSSLSocketFactory.getSocketFactory(ChannelSSLSocketFactory.java:170)
        at weblogic.socket.ChannelSSLSocketFactory.createSocket(ChannelSSLSocketFactory.java:77)
        at weblogic.socket.ChannelSSLSocketFactory.createSocket(ChannelSSLSocketFactory.java:114)
        at weblogic.socket.BaseAbstractMuxableSocket.createSocket(BaseAbstractMuxableSocket.java:133)
        at weblogic.rjvm.t3.MuxableSocketT3.newSocketWithRetry(MuxableSocketT3.java:206)
        at weblogic.rjvm.t3.MuxableSocketT3.connect(MuxableSocketT3.java:375)
        at weblogic.rjvm.t3.ConnectionFactoryT3S.createConnection(ConnectionFactoryT3S.java:34)
        at weblogic.rjvm.ConnectionManager.createConnection(ConnectionManager.java:1773)
        at weblogic.rjvm.ConnectionManager.findOrCreateConnection(ConnectionManager.java:1416)
        at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:437)
        at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:315)
        at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:251)
        at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:194)
        at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
        at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
        at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
        at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
        at weblogic.jndi.WLInitialContextFactoryDelegate$1.run(WLInitialContextFactoryDelegate.java:344)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
        at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:339)
        at weblogic.jndi.Environment.getContext(Environment.java:315)
        at weblogic.jndi.Environment.getContext(Environment.java:285)
        at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)

次のパラメーターを定義しました。

-Djava.protocol.handler.pkgs=weblogic.net -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.TrustKeyStore=CustomTrust -Dweblogic.security.CustomTrustKeyStoreType=JKS -Dweblogic.security.CustomTrustKeyStoreFileName=keystore -Dweblogic.security.CustomTrustKeyStorePassPhrase=passphrase -Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true

どうすれば修正できますか?同じソースと同じパラメーターがWindowsで動作しています。

ありがとうございました。

役に立ちましたか?

解決

このソリューションは一日の少し遅れていますが、同じ問題を抱えている他の人を対象としています。

どうやら、weblogicフルクライアント-wlfullclient.jarはそのmanifest.mfファイルの他のjarへの参照を持っているため、webserviceclient+ssl.jarをクラスパスに追加するという受け入れられたソリューションが機能します。 WebSvicesクライアントJARを追加すると、SSL/TLSを使用するときにクライアントの正しい操作に必要なクラスの最小セットがあると思われるため、問題が解決します。通常、wlfullclient.jarとwlcipher.jarのコピーが別のディレクトリで作成され、classPathに追加された場合にエラーが発生します。 JVMは、マニフェストファイル内から参照されるJARSから他の従属クラスをロードできません。

実際の解決策は、で生成されるwlfullclient.jarを追加することです wl_homeserver libディレクトリ、ClassPathへ。マニフェストは相対ディレクトリパスを介してこれらを参照するため、他のすべての従属ジャーは適切なクラスローダーを介してピックアップされます。

他のヒント

両方のマシンで同じJVMベンダーを使用していますか?

おそらく、キーストアを生成するために使用されるCAは、Windows Truststoreで利用できますが、Solarisでは利用できません。 キーストアであるという仮定はWindowsで生成され、CAはまだSolarisで使用されているJREが出荷されていません. 。違いについて説明します ここ.

方法 構成、設定 CAを追加するトラストストア

最後に、解決策を手に入れました。

ClassPathにWebSviceClient+SSL.jarを追加するだけで問題が解決します。

  • WebServiceClient+ssl.jarはwlfullclient.jarに含まれていません。

確かにあなたはそうですか keystore ファイルはピックアップされていますか?たぶん、指定するときに絶対パスを使用してみてください -Dweblogic.security.CustomTrustKeyStoreFileName オプション。

また、JMSクライアントのクラスパスは両方の環境で本当に同じですか?

提供してみてください wlserver_10.3/server/lib/wlfullclient.jar (コマンドを実行することで作成します java -jar wljarbuilder.jar) wlserver_10.3/server/lib/wlcipher.jar (うん、 wlfullclient.jar ClassPathで。

これは、10.3.4以降のWeblogic以上で簡素化されています。

/server /libディレクトリからwlthint3client.jarをクライアントのclasspathに追加するだけです

私はこれがEJB通信のために機能することを確認しただけですが、ドキュメントは状態です

このリリースは以下をサポートしています。

Oracle WebLogic's T3/T3S protocol for Remote Method Invocation (RMI), including RMI over HTTP (HTTP tunneling). For more information on WebLogic T3 communication, see "Using WebLogic RMI with T3 Protocol" in Programming RMI for Oracle WebLogic Server.

Access to JMS, JMX, JNDI, and EJB resources available in WebLogic Server.

http://docs.oracle.com/cd/e17904_01/web.1111/e13717/wlthint3client.htm

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top