@TOcom.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。C

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。错误:The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
最近在项目中使用了SqlServer数据库,但是在实际操作中遇到了上述的问题。

1.问题描述:

在搭建完项目之后,然后使用vpn能连接上目标数据库,并没有发生错误。但是当将服务部署到服务器上之后就发生了如上的错误。

2.问题分析

1.首先看问题描述,发现是驱动加密与SqlServer出现了问题。说明可能是SqlServer数据库驱动与对方的数据库版本不一致导致的。但是根据我实际操作在我本地使用该驱动并没有出现报错,部署到服务器上才出现报错,这说明并不是数据库驱动和数据库版本不一致导致的。
2.后面去百度发现SqlServer数据库驱动必须和jdk的版本对应上,然后我在本地的jdk和服务器上的jdk都是同样的1.8版本,但是具体的小版本不一样。这个问题排除。
3. 在分析这个报错,发现是TLS10这个协议无法向上兼容TLS12这个协议的问题。

3.问题确定

TLS10这个协议无法向上兼容TLS12这个协议。

4.问题解决方案

注意这里是linux下的解决具体方案,在window下自己去找jdk\jre\lib\security这个目录。

4.1.找到自己的jdk安装目录命令。

echo $JAVA_HOME

4.1.找到自己的jre\lib\security安装目录下的java.security。

4.2、在java.security文档中搜索jdk.tls.disabledAlgorithms

修改配置前的图片

4.3 删除标红的内容(TLSv1、TLSv1.1、3DES_EDE_CBC)

修改配置后的图片

4.5重启服务

重启服务就解决报错了。

参考博客:参考博客
参考网站:参考网站

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐