驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

在遇到使用sqlserver数据库时驱动程序无法建立SSL安全连接的问题,可以尝试在数据库URL中添加trustServerCertificate=true来信任服务器证书。若报错显示TLS版本不被接受,需要更新JDK的java.security文件,移除TLSv1和TLSv1.1从禁用算法列表中。
摘要由CSDN通过智能技术生成

一、在进行项目开发时,当使用的是sqlserver数据库,有时候会出现“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”的报错内容

解决方案:
        在数据库链接的URL后面添加trustServerCertificate=true,这个配置意味着客户端将信任它从SQL server获得的证书,而不进行完全验证。虽然此种方式不是最优解,但是却可以顺利的解决此问题。

spring:
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:sqlserver://localhost:1433;databaseName=his2010;trustServerCertificate=true
    username: sa
    password: *********

二、当报错内容是以下内容时

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:b0907b82-2df1-4cf5-9640-053720fe9ed9
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3680)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:2047)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3204)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2833)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2671)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1640)

解决方案:修改JDK安装目录下的\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

修改为

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, anon, NULL

  • 20
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver 错误是指在使用Java连接到Microsoft SQL Server数据库时,无法找到Microsoft SQL Server JDBC驱动程序的类。这个错误通常发生在Java程序尝试加载com.microsoft.jdbc.sqlserver.SQLServerDriver类时,但在类路径中找不到这个类。为了解决这个问题,你可以按照以下步骤进行操作: 1. 确保你已经正确地装了Microsoft SQL Server JDBC驱动程序。你可以从Microsoft官方网站下载最新的JDBC驱动程序,并将其添加到你的项目依赖中。 2. 检查你的类路径设置。确保你已经正确地配置了类路径,以便Java程序可以找到Microsoft SQL Server JDBC驱动程序的类。你可以通过在命令行中使用"-cp"参数或在IDE中配置项目构建路径来设置类路径。 3. 检查你的代码中的类名拼写和大小写。确保你在代码中准确地使用了com.microsoft.sqlserver.jdbc.SQLServerDriver类的名称。 4. 如果你使用的是较旧版本的Microsoft SQL Server JDBC驱动程序,请尝试升级到最新版本。有时候,旧版本的驱动程序可能会有一些兼容性问题。 5. 如果你正在使用某种构建工具(如Maven或Gradle),请确保你已经正确地配置了相关的依赖项和构建脚本,以便能够正确地引入和使用Microsoft SQL Server JDBC驱动程序。 通过以上步骤,你应该能够解决java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver错误,并成功连接到Microsoft SQL Server数据库。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

STC灬漠然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值