2016-07-12 129 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。)