Weblogic10.3.0上启用-DuseSunHttpHandler的影响/风险

我正在开发一个通过代理向第三方服务请求的应用程序。

我的应用程序在Weblogic10.3.0上运行,我遇到了BAD_CERTIFICATEexception的问题,如下所示。

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。

微软和谷歌宣布SHA-1弃用计划可能会影响早在2015年12月31日之后到期的SHA-1证书网站。

可以使用不同的“哈希算法”创建证书,包括

1)SHA1:160位散列

2)SHA2:具有不同块大小的两个类似哈希函数的族,称为SHA-256和SHA-512(这是一种较新的算法)

直到最近,WebLogic仅支持SHA1算法。 但从WebLogic 10.3.3开始,也支持SHA2算法。

如果您希望使用带有SHA2哈希算法的证书,那么您将需要启用JSSE SSL(它信任更强的证书,如SHA2)

Oracle强烈建议您升级到最新的WebLogic Maintenence Pack和最新的JDK补丁,因为JSSE SSL和较低的WebLogic维护包和Java补丁存在一些已知问题。 您应该至少使用WebLogic 10.3.6

从weblogic 11g(10.3.6)开始支持SHA2(SHA256等),但证书仅适用于JSSE实现(-Dweblogic.security.SSL.enableJSSE = true)。

您可以在Oracle Metalink上的官方文档(support.oracle.com)上查看WebLogic上有关SSL证书的常见问题解答