Web Services javax.net.ssl.SSLKeyException:FATAL预警:BAD_CERTIFICATE -收到损坏或不可用的证书

jtjikinw  于 2022-11-24  发布在  Java
关注(0)|答案(4)|浏览(388)

尝试访问WSDL端点时出现以下错误。
首先,我使用cliengen ant task创建了客户端jar,然后创建了一个简单的java类来测试wsdl端点,我得到了以下错误-

javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(Unknown Source)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown Source)
    at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(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.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 com.certicom.tls.record.WriteHandler.write(Unknown Source)
    at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
    at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
    at weblogic.webservice.binding.soap.HttpClientBinding.writeToStream(HttpClientBinding.java:430)
    at weblogic.webservice.binding.soap.HttpClientBinding.send(HttpClientBinding.java:219)
    at weblogic.webservice.core.handler.ClientHandler.handleRequest(ClientHandler.java:37)
    at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.java:143)
    at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:231)
    at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143)
    at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:471)
    at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
    at weblogic.webservice.core.rpc.StubImpl._invoke(StubImpl.java:303)

有人能帮忙吗?

sigwle7e

sigwle7e1#

我能够通过使用以下命令更新\Oracle\Middleware\user_projects\domains\my_domain\bin\setDomainEnv.cmd来解决该异常

set JAVA_OPTIONS=%JAVA_OPTIONS% -DUseSunHttpHandler=true -Dssl.SocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl -Dssl.ServerSocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl
rta7y2nd

rta7y2nd2#

通过在JVM参数中添加以下行修复了此问题。

-Dweblogic.security.SSL.nojce=true 
-Dweblogic.ssl.JSSEEnabled=true 
-Dweblogic.security.SSL.enableJSSE=true

不要忘记回收JVM。:)

jm2pwxwz

jm2pwxwz3#

我在尝试从WebLogic应用程序向AWS上的S3Bucket上传文件时也遇到了类似的情况。

JAVA_OPTIONS="${JAVA_OPTIONS} -DUseSunHttpHandler=true -Dssl.SocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl -Dssl.ServerSocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl" 

just before this command

JAVA_OPTIONS="${JAVA_OPTIONS}"
export JAVA_OPTIONS

\Oracle\Middleware\user_projects\domains\my_domain\bin\setDomainEnv.cmd

我的问题已经解决了。只要确保在修改后重新启动WebLogic。

3lxsmp7m

3lxsmp7m4#

将此添加到启动参数中

-DUseSunHttpHandler=true 
-Dssl.SocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl 
-Dssl.ServerSocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl

相关问题