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

Eclipse环境下Java Tomcat连接SQL Server时TLS版本不兼容问题如何解决

解决SQL Server连接时TLS10协议不兼容问题

方案1:升级SQL Server的TLS协议版本(优先推荐)

TLS10属于不安全的旧协议,优先升级服务器端的TLS版本:

  • 在SQL Server所在服务器上打开注册表编辑器(运行regedit即可)
  • 定位到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
  • 分别新建TLS 1.1和TLS 1.2的子项,每个子项下方再创建Client和Server两个子项
  • 在每个Client和Server子项中,新建DWORD(32位)值,命名为Enabled,值设为1;再新建一个DWORD值,命名为DisabledByDefault,值设为0
  • 重启SQL Server服务和服务器,新的TLS协议即可生效

方案2:调整Java客户端的TLS配置(临时应急)

如果暂时无法升级SQL Server,可修改Java启动参数,让客户端接受TLS10:

  • 在Eclipse中找到Tomcat服务器配置,点击Open Launch Configuration
  • 切换到Arguments标签页,在VM arguments中添加以下参数:
    -Djdk.tls.client.protocols=TLSv1.2,TLSv1.1,TLSv1
    
  • 保存配置后重启Tomcat即可
  • 也可直接修改Tomcat的启动脚本:Windows系统编辑catalina.bat,Linux系统编辑catalina.sh,在文件开头添加对应内容:
    Windows:
    set JAVA_OPTS=%JAVA_OPTS% -Djdk.tls.client.protocols=TLSv1.2,TLSv1.1,TLSv1
    
    Linux:
    export JAVA_OPTS="$JAVA_OPTS -Djdk.tls.client.protocols=TLSv1.2,TLSv1.1,TLSv1"
    

额外检查项

  • 确认SQL Server驱动版本,建议使用最新的mssql-jdbc驱动(至少7.0版本以上),旧驱动可能默认不支持高版本TLS
  • 检查Java版本,Java 8u161及以上默认启用TLS1.2,若使用更低版本,需手动开启TLS1.2支持

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:35:05