2015-08-14 76 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作爲值