JavaJRE忽略TLSv1。1优先权
我在macOS 11.4下运行Oracle的JRE版本1.8.0291-b10,无法使用通过TLSv1获取JAR的本地JNLP。一,
当使用javaws -wait ~/Downloads/test.jnlp
运行JNLP时,我得到了javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS11 is not accepted by client preferences [TLS13, TLS12, SSL20Hello]
,尽管在控制面板中启用了所有协议:
我还试图通过运行javaws -J-Dhttps.protocols=TLSv1.1 -wait ~/Downloads/test.jnlp
来强制JVM(以防设置出现问题),但这让我javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
似乎JRE无法生成TLSv1。1.不管发生什么事。有没有办法强迫它?更新应用程序是毫无疑问的,因为这是一个封闭源代码的软件,通常需要IE6&;要运行Windows XP
# 1 楼答案
你可以找到信息here。它可能有点过时,但包含必要的配置。总结:
-Djdk.tls.client.protocols=TLSv1.1
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves
-Djava.security.properties=<path to enableTLS1.1.security>
除了2)和3)之外,您还可以删除TLSv1。1来自jdk。tls。/jre/lib/security/java中的disabledAlgorithms属性。安全,但这不是好的做法