文章目录
-
-
- 一. 前言
- 二. 解决方案
-
- 方案1
- 方案2
- 三. 总结
-
一. 前言
在《数据库原理》这门课的实验上,需要使用SQL Server,然后使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接,整理出来以下两种解决方案。
二. 解决方案
一共两种解决方案,如下所示:
方案1
首先是网上寻找到的第一种办法,就是在自己安装的JDK目录下找到java.security文件,然后打开这个文件。查询jdk.tls.disabledAlgorithms,然后将里面的3DES_EDE_CBC去掉,然后再使用旧的算法。
下面是我的电脑上的例子:
但是遗憾的是,这个解决办法没有解决我的问题。
方案2
-
连接数据库时,如果我们需要对在客户端与服务器之间发送的所有数据使用 TLS 加密,那么就需要设置
encrypt=true
,同时设置trustServerCertificate=true
,Microsoft JDBC Driver for SQL Server 将不验证SQL Server TLS 证书。 此设置常用于允许在测试环境中建立连接,如 SQL Server 实例只有自签名证书的情况。 -
连接数据库时,如果我们不想对在客户端与服务器之间发送的所有数据使用 TLS 加密,那么就需要设置
encrypt=false
.
操作方法如下:
String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=false";
OR
String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=true;trustServerCertificate=true";
三. 总结
- 修改java.secrity文件
- 在url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true(
推荐
)
如果你在阅读本文中发现描述不够准确或有误的地方,还请给予我一定的反馈,大家一起学习进步!!!