2021-06-23

使用JAVA11连接SQLSERVER2005数据库
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Unexpected rethrowing”。
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。

使用JAVA11连接SQLSERVER2005数据库

本人安装的环境是
Java:jdk-11.0.11
JDBC驱动:mssql-jdbc-9.2.1.jre11.jar
TomCat:apache-tomcat-10.0.6
模拟环境的数据库:sqlserver2019
实际环境的数据库:sqlserver2005

我在使用jdk11连接虚拟机的sqlserver2019是可以直接连接成功的,但是连接sqlserver2005的时候遇到了以下两个问题:
1、驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Unexpected rethrowing”。
2、驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。

网上搜索后发现是java的配置问题,需要修改名为java.security的配置文件,在jdk的安装目录,即%JAVA_HOME%\conf\security找到java.security文件,打开这个文件后找到以下配置信息:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
include jdk.disabled.namedCurves

删除TLSv1和3DES_EDE_CBC两项,应该是java11的默认配置禁用这两种算法,删除后是启用它们,删除后的信息如下所示:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, anon, NULL,
include jdk.disabled.namedCurves

重新运行测试项目后发现可以连接SQLserve2005数据库了,如果只删除3DES_EDE_CBC会出现上面第二种问题。连接成功后提示:com.microsoft.sqlserver.jdbc.TDSChannel enableSSL警告: TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值