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";
现在也还不了解具体原理,麻烦各位不吝赐教。
总结
- 修改java.secrity文件
- 在url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true
如果你在阅读本文中发现描述不够准确或有误的地方,还请给予我一定的反馈,大家一起学习进步!!!