(注:這是關係到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開關?
注:我試過後者,它似乎沒有工作。
謝謝。
(注:這是關係到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開關?
注:我試過後者,它似乎沒有工作。
謝謝。
您的代碼(包括您打電話給的庫)是否直接使用類似new URL("https://xxx").connect()
和NOT SSLSocket
或SSLEngine
?只有前者使用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。)
你應該使用Java 8. – chrylis
它不依賴於運行時/ JVM嗎? –
JDK 6和7都已經過了他們的支持生命。每個人都應該使用JDK 8. – duffymo