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

如何强制Java 17导出的应用使用TLS 1.2而非TLS 1.0?

强制Java JAR连接SQL Server使用TLS 1.2的解决方案

方法一:通过JVM启动参数指定TLS版本

运行JAR时添加以下参数,强制JVM使用TLS 1.2作为默认协议:

java -Djdk.tls.client.protocols=TLSv1.2 -jar your-app.jar

如果需要临时兼容TLS 1.0(不推荐,仅应急),可改为:

java -Djdk.tls.client.protocols=TLSv1.2,TLSv1.0 -jar your-app.jar

方法二:修改JDBC连接字符串

在连接字符串中加入encrypt=true和sslProtocol=TLSv1.2参数,明确要求驱动使用TLS 1.2:

"jdbc:sqlserver://SERVERNAME\\sqlexpress;user=USERID;password=PASSWORD;encrypt=true;sslProtocol=TLSv1.2"

注意:必须开启encrypt=true,否则sslProtocol参数不会生效。

方法三:在代码中设置系统属性

如果无法修改启动参数,可在应用初始化的最早期(比如main方法第一行)添加代码强制设置:

System.setProperty("jdk.tls.client.protocols", "TLSv1.2");

也可以补充设置:

System.setProperty("https.protocols", "TLSv1.2");

额外排查要点

  • 确认SQL Server支持TLS 1.2:SQL Server 2012及以上版本需安装对应补丁才能启用TLS 1.2,检查服务器端的TLS配置。
  • 升级JRE 1.8版本:旧版JRE 1.8对TLS 1.2支持不完善,建议升级到1.8u161及以上版本,这类版本默认启用TLS 1.2支持。
  • 对齐Eclipse与JAR的运行参数:查看Eclipse的「Run Configurations」中当前使用的VM参数,将相同参数复制到JAR的启动命令中,消除环境差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:20:26