2015-08-14 841 views
0

我有一台VM运行带有2个节点的Weblogic Server(运行版本10.3.6)。我的主机上还运行着一个运行SSL Web服务的Tomcat服务器,Weblogic服务器必须连接到该服务器。我加了两个启动参数的“参数”文本区域下启动:修改Weblogic服务器以使用TLS

-Dweblogic.security.SSL.protocolVersion=TLSv1.1 -Dweblogic.security.SSL.minimumProtocolVersion=TLSv1.1

我说这些,因为节点试图使用前的SSLv2连接,并导致与Tomcat的握手错误。

添加这些参数后,我仍然看到尝试使用SSLv2连接到Tomcat的节点。我试图让它使用TLS。我还能做些什么才能使用TLS?

回答

1

你可能不使用的SSLv2,而是在SSLv3或TLS1.x ClientHello裹成的SSLv2 ClientHello。见"Why does Java's SSLSocket send a version 2 client hello?""How to initiate ssl connection using SSLv2"

注意,latest JSSE Reference Guide (JDK 8)说:

注:由于禁用的SSLv3的一部分,一些服务器还禁用SSLv2Hello,这意味着与SSLv2Hello活性客户端(例如JDK 1.5/6)将失败的通信。从JDK 7开始,SSLv2Hello默认为在客户端上禁用,在服务器上启用。

Java 7 release notes也说:

SSLv2Hello默认情况下在客户端上禁用:在Java SE 7,SSLv2Hello从客户端上的默认启用的协议列表中删除。

您可能正在使用较旧的JRE,或者出于某种原因SSLv2Hello已在您的客户端上显式启用。

+0

是否有一个版本的tomcat将启用SSLv2Hello,或者我如何在Tomcat 7或8中启用它? – Jay37

+0

它通常应该默认启用。你是否检查过你的客户端确实发送了SSLv2Hello(不是真正的SSLv2客户端Hello)?例如,您应该能够看到Wireshark。 – Bruno

0

设置-Dweblogic.security.SSL.minimumProtocolVersion = TLSv0作为java选项,将最小协议设置为SSLV3,并且将消除对SSLV2的使用。 这对我有用。

TLSv0无效,WebLogic 12.1.3将SSLV3设置为最小值。

0

什么是您使用WebLogic的Java版本?

TLS 1.1可从Java 1.6 Update 111获取。这可能是它不工作的原因。那使用TLSv1作为值