【问题标题】:How to enable TLSv1.3 in jdk 8 by default?如何默认在 jdk 8 中启用 TLSv1.3?
【发布时间】:2023-01-10 16:59:00
【问题描述】:

如何在 java spring 应用程序中配置 TLSv1.3? Jdk 8 支持 1.3 版本的 TLS,并且还具有向后兼容性。 有人可以帮忙吗?

【问题讨论】:

    标签: java spring spring-boot java-8 tls1.3


    【解决方案1】:

    根据 JDK 8u261 的发行说明,Java 8 现在具有反向兼容性以支持 TLS 1.3。

    TLS 1.3 对默认 SSLContext 以及服务器禁用。要在服务器上启用 TLS 1.3 协议,请使用 jdk.tls.server.protocols 系统属性。

    要在客户端启用 TLS 1.3 协议,请按照以下步骤操作:

    --> 使用以下方法指定现有连接支持的协议 SSLSocket.setEnabledProtocols

    sslSocket.setEnabledProtocols(new String[] { "TLSv1.3", "TLSv1.2"});

    --> 现在创建一个基于 TLS 1.3 的 SSLContext:

    SSLContext ctx = SSLContext.getInstance("TLSv1.3");

    --> 使用以下方法指定支持的协议: SSLParameters.setProtocols(Object param);

    sslParameters.setProtocols(new String[] {"TLSv1.3", "TLSv1.2"});

    --> 使用 jdk.tls.client.protocols 系统属性指定客户端 SSLSockets 支持的协议:

    java -Djdk.tls.client.protocols="TLSv1.3,TLSv1.2" MyApplication

    --> 为通过 HttpsURLConnection 或方法 URL.openStream 与 https.protocols 系统属性获得的连接指定支持的协议:

    java -Dhttps.protocols="TLSv1.3,TLSv1.2" MyApplication

    让我知道它是否不起作用。!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-30
      • 2019-04-23
      • 2019-08-27
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      相关资源
      最近更新 更多