【发布时间】:2015-06-12 04:38:53
【问题描述】:
我正在开发一个通过代理向第三方服务发出请求的应用程序。
我的应用程序在 Weblogic10.3.0 上运行,我遇到了 BAD_CERTIFICATE 异常的问题,如下所示。
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)
网上有很多建议说,加上-DuseSunHttpHandler=true有助于解决问题,因为第三方已经升级了他们的证书(128位到256位)。解决方案工作正常,但是,现在手头的问题是我找不到官方文章明确说 Certicom 仅支持最高 128 位,为了解决它,我们需要启用 JSSE,据我所知,它是由 SunHttpHandler 使用。
这里的另一个问题是,“使用 SunHttpHandler 会产生已知的影响吗?” 我知道从 10.3.3 或 10.3.5 开始,Certicom 将被弃用并默认使用 JSSE,但目前无法升级 weblogic。
【问题讨论】:
-
我需要一个官方信息来进行影响分析和参考,这样这个东西才能上线。谢谢。
-
我们在 weblogic 10.3.6 上。我得到了和上面一样的错误。我得到了使用 -DuseSunHttpHandler=true 的建议,但我检查了这里讨论的两个应用程序都有 256 位证书。只是想知道这是否是使用 SunHTTPHandler 的正确位置
标签: java weblogic-10.x