有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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],尽管在控制面板中启用了所有协议:
TLSv1.1 enabled

我还试图通过运行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) 个答案

  1. # 1 楼答案

    你可以找到信息here。它可能有点过时,但包含必要的配置。总结:

    1. 添加-Djdk.tls.client.protocols=TLSv1.1
    2. 创建文件enableTLS1。1.security包含以下内容(您还可以从/jre/lib/security/java.security复制该属性,并删除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

    1. -Djava.security.properties=<path to enableTLS1.1.security>

    除了2)和3)之外,您还可以删除TLSv1。1来自jdk。tls。/jre/lib/security/java中的disabledAlgorithms属性。安全,但这不是好的做法