连接Sql Server时报错:无法通过使用安全套接字层加密与 SQL Server 建立安全连接
作者:mmseoamin日期:2023-12-14

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去掉,使用旧的算法。

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

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

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

    解决办法二

    在连接数据库时,在我们使用的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


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