idea连接sql-server数据库失败,报证书验证错误

文章主要介绍了在Springboot项目中遇到的连接SQLServer时因SSL证书验证失败导致的连接问题,以及如何通过在数据源配置中添加特定参数(encrypt=true;trustServerCertificate=true)来跳过证书验证,从而成功建立连接。同时,提供了项目的相关依赖注入和详细的数据源配置示例。
摘要由CSDN通过智能技术生成

1、报错信息

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:fc5064da-6aa8-45a7-8666-69c2b0ac6b90] with root cause
 

1.1、问题:

使用navicat连接sqlserver正常连接,但使用idea连接时报连接协议(SSL/TLS)对不上,也就是证书验证失败。

这时需要在数据源配置时候添加跳过证书验证

1.2、解决:

在yml配置数据源的地方添加  ;encrypt=true;trustServerCertificate=true;

例如:url: jdbc:sqlserver://数据库ip地址:1433;DatabaseName=库名;encrypt=true;trustServerCertificate=true;

注:文章尾部有详细数据源配置。

2、springboot项目中使用sql-server数据库需要做的工作:

2.1、maven依赖注入:

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <scope>runtime</scope>
</dependency>

2.2、application.yml文件数据源配置:

spring:
        datasource:
                driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
                url: jdbc:sqlserver://数据库ip地址:1433;DatabaseName=库名;encrypt=true;trustServerCertificate=true;
                username: root
                password: root
                maxActive: 20
                initialSize: 1
                maxWait: 60000
                minIdle: 1
                timeBetweenEvictionRunsMillis: 60000
                minEvictableIdleTimeMillis: 300000
                validationQuery: select 1
                testWhileIdle: true
                testOnBorrow: true
                testOnReturn: true
                poolPreparedStatements: true
                maxOpenPreparedStatements: 20

2.3、工具版本:

idea2023、maven3.9、sql-server2022、SQL Server Management Studio(sql-server可视化工具)、jdk17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值