2016-07-12 153 views
0

(注:這是關係到this question的Java 1.6和TLS 1.1

我們知道,與非自由的Java 1.6_111更新,Java 1.6的支持TLS 1.1 HTTPS。我的問題是:我應該編譯我的程序與Java 6 111或只使用Java 6 111與-Dhttps.protocols = TLSv1.1開關?

注:我試過後者,它似乎沒有工作。

謝謝。

+5

你應該使用Java 8. – chrylis

+0

它不依賴於運行時/ JVM嗎? –

+0

JDK 6和7都已經過了他們的支持生命。每個人都應該使用JDK 8. – duffymo

回答

1

您的代碼(包括您打電話給的庫)是否直接使用類似new URL("https://xxx").connect()和NOT SSLSocketSSLEngine?只有前者使用https.屬性。

如果使用JSSE級別,我不支付擴展支持,因此沒有代碼(或源代碼,對於6的IIRC不包括加密),但the release notes僅討論通過顯式調用進行選擇到.setEnabledProtocols(在代碼中)。 release notes for 115 b32另外說

新的jdk.tls.client.protocols系統屬性也可以用來控制TLS連接使用的協議。 (JDK-8151183)

和'new'表明這在111中不起作用,但是您可以嘗試。

如果確實將代碼更改爲調用.setEnabledProtocols該方法本身已存在,則只有參數值發生更改,因此您可以針對任何JDK6編譯並在6u111上運行。 (但是如果你在編譯系統上進行單元測試和/或調試,你可能確實需要6u111。)