【发布时间】:2023-01-10 16:59:00
【问题描述】:
如何在 java spring 应用程序中配置 TLSv1.3? Jdk 8 支持 1.3 版本的 TLS,并且还具有向后兼容性。 有人可以帮忙吗?
【问题讨论】:
标签: java spring spring-boot java-8 tls1.3
如何在 java spring 应用程序中配置 TLSv1.3? Jdk 8 支持 1.3 版本的 TLS,并且还具有向后兼容性。 有人可以帮忙吗?
【问题讨论】:
标签: java spring spring-boot java-8 tls1.3
根据 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
让我知道它是否不起作用。!
【讨论】: