You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JDK 8中默认启用TLSv1.3及Spring应用配置方法

在JDK 8中默认启用TLSv1.3

JDK 8从u261版本开始正式支持TLSv1.3,你可以通过以下几种方式默认启用它:

1. JVM启动参数

在启动Java程序时添加以下参数,既强制优先使用TLSv1.3,又保留对旧版本协议的兼容:

-Djdk.tls.client.protocols=TLSv1.3,TLSv1.2
-Dhttps.protocols=TLSv1.3,TLSv1.2
-Djdk.tls.server.protocols=TLSv1.3,TLSv1.2

如果不需要兼容旧协议,去掉参数中的TLSv1.2即可,但建议保留以避免旧客户端无法连接。

2. 修改全局安全配置文件

找到JDK安装目录下的jre/lib/security/java.security文件,修改以下配置项:

jdk.tls.client.protocols=TLSv1.3,TLSv1.2
jdk.tls.server.protocols=TLSv1.3,TLSv1.2

修改后所有基于该JDK运行的Java程序都会默认使用这些协议,无需每次手动添加启动参数。

3. 代码层面指定

如果仅需在特定代码逻辑中启用TLSv1.3,可以手动初始化SSLContext:

SSLContext sslContext = SSLContext.getInstance("TLSv1.3");
sslContext.init(null, null, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());

在Java Spring应用中配置TLSv1.3

根据Spring应用的部署方式,配置方法有所不同:

1. Spring Boot内嵌Tomcat场景

方式一:配置文件(application.properties/yml)

在配置文件中添加SSL相关配置:

# 启用SSL
server.ssl.enabled=true
# 指定核心SSL协议为TLSv1.3
server.ssl.protocol=TLSv1.3
# 设置支持的协议列表,兼顾兼容性
server.ssl.enabled-protocols=TLSv1.3,TLSv1.2
# 证书必填配置
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=your-password
server.ssl.key-alias=your-alias

方式二:自定义Tomcat配置Bean

如果需要更灵活的控制,可以创建TomcatServletWebServerFactory Bean:

@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory() {
    TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
    factory.addConnectorCustomizers(connector -> {
        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
        protocol.setSslProtocol("TLSv1.3");
        protocol.setSslEnabledProtocols("TLSv1.3,TLSv1.2");
    });
    return factory;
}

2. 外部Tomcat部署场景

修改Tomcat安装目录下conf/server.xml中的Connector配置,指定SSL协议和启用列表:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                     type="RSA"
                     sslProtocol="TLSv1.3"
                     enabledProtocols="TLSv1.3,TLSv1.2"/>
    </SSLHostConfig>
</Connector>

内容的提问来源于stack exchange,提问作者shagun dhiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:06:13