JDBC连接Sql Server时报错:无法通过使用安全套接字层加密与 SQL Server 建立安全连接

  • 前言
  • 解决办法一
  • 解决办法二
  • 总结

前言

  今天使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接


解决办法一

首先是网上寻找到的第一种办法,就是在自己安装的JDK目录下找到java.security文件,然后打开这个文件。查询jdk.tls.disabledAlgorithms,然后将里面的3DES_EDE_CBC去掉,使用旧的算法。

下面是我的电脑上的例子:

但是遗憾的是,这个解决办法没有解决我的问题。

解决办法二

在连接数据库时,在我们使用的url后面加上一个encrypt=false或者encrypt=true;trustServerCertificate=true

String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=false";String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=true;trustServerCertificate=true";
现在也还不了解具体原理,麻烦各位不吝赐教。

总结

  1. 修改java.secrity文件
  2. 在url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true


如果你在阅读本文中发现描述不够准确或有误的地方,还请给予我一定的反馈,大家一起学习进步!!!