문제

Solaris 서버에서 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 Full Client -wlfullClient.jar는 ClassPath Works에 WebServiceClient+SSL.jar를 추가하는 허용 된 솔루션이 ClassPath 작업에 추가됩니다. WebServices 클라이언트 Jar를 추가하면 SSL/TLS를 사용할 때 클라이언트의 올바른 작동에 필요한 최소 클래스 세트가있는 것으로 보이므로 문제가 해결됩니다. wlfullclient.jar 및 wlcipher.jar의 사본이 다른 디렉토리로 만들어지고 클래스 경로에 추가 될 때 일반적으로 오류가 발생합니다. 그런 다음 JVM은 매니페스트 파일 내에서 참조되는 항아리의 다른 종속 클래스를로드하지 않습니다.

실제 솔루션은 wlfullclient.jar를 wl_homeserver lib 디렉토리, 클래스 경로. 그런 다음 다른 모든 부양 항아리는 적절한 클래스 로더를 통해 픽업됩니다.

다른 팁

두 머신에서 동일한 JVM 공급 업체를 사용하고 있습니까?

KeyStore를 생성하는 데 사용되는 CA는 Windows Truststore에서 사용할 수 있지만 Solaris에서는 사용할 수 없습니다. Keystore라는 가정은 Windows에서 생성되었으며 CA는 아직 Solaris에서 사용되는 JRE와 함께 배송되지 않습니다.. 차이점에 대해 논의합니다 여기.

어떻게 구성 CA를 추가하는 신탁 스토어

마침내 해결책을 얻었습니다.

ClassPath에 WebServiceClient+SSL.jar를 추가하면 문제가 해결됩니다.

  • wlfullclient.jar에 WebserviceClient+ssl.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 이상의 웹 로그에서 단순화되었습니다.

/server /lib 디렉토리에서 클라이언트 클래스 경로에 wlthint3client.jar를 추가하십시오.

나는 이것이 EJB 커뮤니케이션을 위해서만 작동했지만 Docs 상태를 확인했습니다.

이 릴리스는 다음을 지원합니다.

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