无法使用Java 8(Zulu 8u332)连接SQL Server 2014的问题求助
解决Java 8 Zulu 8u332连接MSSQL Server 2014的TLS版本兼容问题
问题背景
使用Zulu 8u332(Java 8)开发的应用连接未启用SSL的MSSQL Server 2014时,出现以下错误:
The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]"
且无法通过在数据库端启用TLS1.2或应用端启用TLS1.0来解决。
可行解决方案
显式禁用JDBC连接的SSL加密
即使数据库未启用SSL,部分版本的Microsoft JDBC Driver for SQL Server会默认尝试发起SSL连接,从而触发TLS版本协商。在数据库连接URL中添加encrypt=false参数,强制驱动不使用SSL加密,绕过TLS版本校验:jdbc:sqlserver://<你的数据库地址>:1433;databaseName=<数据库名>;encrypt=false该方案无需修改JVM或数据库的TLS配置,直接通过连接参数解决版本冲突。
匹配兼容的JDBC驱动版本
确保使用的Microsoft JDBC Driver版本与Java 8、MSSQL Server 2014兼容,推荐使用7.4.x版本(该版本原生支持Java 8,对MSSQL 2014的适配性更稳定),避免因驱动版本过旧导致的异常SSL连接逻辑。
内容的提问来源于stack exchange,提问作者java-dev
相关产品推荐
相关产品推荐

