IntelliJ运行Java项目连接SQL Server报TLS10协议不被客户端支持错误
问题根因
你遇到的报错本质是Java客户端默认仅支持TLS1.2协议,但本地SQL Server服务协商加密时选择了TLS1.0协议,两端协议版本不匹配导致SSL连接建立失败。同事运行正常说明问题出在你本地的JDK运行环境配置,和项目代码、数据库服务端本身的全局配置无关。
排查步骤
- 确认IDEA项目使用的JDK路径
打开IDEA的File > Project Structure > Project,查看当前配置的SDK版本与安装路径,同时核对Run > Edit Configurations中对应启动项的JRE配置,确保两者使用的是同一个JDK环境,避免多版本JDK混用导致配置不生效。 - 检查JDK的TLS协议禁用规则
进入上述JDK的安装目录:- JDK8及更低版本:打开
jre/lib/security/java.security文件 - JDK9及更高版本:打开
conf/security/java.security文件
找到jdk.tls.disabledAlgorithms配置项,确认列表中是否包含TLSv1、TLSv1.1,如果存在说明该JDK默认禁用了低版本TLS协议。
- JDK8及更低版本:打开
解决方案
方案1:修改JDK安全配置(仅本地开发用)
删除jdk.tls.disabledAlgorithms配置项中的TLSv1、TLSv1.1,保存文件后重启IDEA与项目即可恢复连接。
该方案会降低JDK的通信安全等级,禁止在生产环境使用。
方案2:修改JDBC连接参数
在你的数据库连接URL末尾追加参数:;tlsVersion=TLSv1.2;trustServerCertificate=true,强制JDBC驱动使用TLS1.2协议和服务端通信,无需修改JDK配置。如果追加后仍报错,说明你本地的SQL Server未开启TLS1.2支持,需要到SQL Server配置管理器中开启TLS1.2协议后再重试。
方案3:统一JDK版本
直接拷贝同事正常运行使用的JDK到本地,在IDEA中将项目SDK切换为该JDK版本,重启项目即可生效。
内容的提问来源于stack exchange,提问作者El Mehdi Bouddit
相关产品推荐
相关产品推荐

