Failed to create/setup connection: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
情况描述:用hutool的DB工具测试连接SQL server数据库。结果返回异常。
尝试网上的一些方法,但均未成功。
如:
1、更换JDK,这是不可能的。现在用的是1.8
2、jre/lib/ext目录增加bcprov-ext-jdk15on-1.54.jar和bcprov-jdk15on-1.54.jar,修改$JAVA_HOME\jre\lib\security/ java.security文件
代码:
Db db = Db.use("sqlserver");Entity whereEntity = Entity.create().setTableName("表名").set("CId", "E7F9199F-6721-48FD-B991-3F41998D4F18");List<Entity> result = db.find(null, whereEntity);for (Entity entity : result) {Console.log(JSONUtil.toJsonStr(entity));}
返回:
18:04:23.342 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
18:04:25.080 [main] DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to create/setup connection: 驱动程序无法通过使用安全套接字层(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:e2a9eb59-fc2c-4101-bf63-ad736d4feac6
18:04:25.084 [main] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Cannot acquire connection from data source
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:e2a9eb59-fc2c-4101-bf63-ad736d4feac6at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3680)at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:2113)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)at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:936)at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541)at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)at cn.hutool.db.ds.hikari.HikariDSFactory.createDataSource(HikariDSFactory.java:60)at cn.hutool.db.ds.AbstractDSFactory.createDataSource(AbstractDSFactory.java:134)at cn.hutool.db.ds.AbstractDSFactory.getDataSource(AbstractDSFactory.java:99)at cn.hutool.db.ds.DSFactory.get(DSFactory.java:111)at cn.hutool.db.Db.use(Db.java:44)Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.ssl.Alerts.getSSLException(Alerts.java:192)at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964)at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328)at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322)at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614)at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:2021)... 18 common frames omitted
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)at sun.security.validator.Validator.validate(Validator.java:260)at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:105)at com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.checkServerTrusted(IOBuffer.java:1702)at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:985)at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)... 26 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)... 34 common frames omitted
最后解决办法:
参考文章:Java通过JDBC连接SQL Server2017数据库 - 槐城一只猫 - 博客园
缺少连接sqlserver数据库需要使用驱动jar包-sqljdbc42
只需要把jar放到jre/lib/ext目录下即可。
如果不行,环境变量配置一下,CLASSPATH增加sqljdbc42.jar的引用。
遇到同样的报错,可以尝试一下。
Failed to create/setup connection: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。相关推荐
- idea连接sql server报错:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
idea连接sql server报错:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 运行环境:IDEA2020.1:JDK1.8:SQL SERVER2005: ...
- 问题解决:idea 中无法连接 sql server 数据库,报错 [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
报的错误信息如下: [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接.错误:"PKIX path building failed: sun ...
- 关于解决驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException:
首先 如果你是在访问一个网站,可以通过可以通过导入证书的方式解决该问题.或者跳过ssl证书验证.这些操作步骤,其他博主已经写的非常详细了.在这里不做赘述. 如果你只是单纯链接一个本地数据库,却莫名其妙 ...
- 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“No appropriate protocol (protocol is disabled or ciph
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接.错误:"The server selected protocol version TLS10 is no ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接 驱动版本 最新 ...
- 连接数据库报com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
JDBC加载驱动,连接SQLServer 2012 报 java.ext.dirs: C:\Program Files\Java\jdk1.8.0_331\jre\lib\ext;C:\Windows ...
- [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is
文章目录 项目场景 问题描述 解决方案 方案一:修改jdk(推荐) 方案二:修改idea 测试连接 项目场景 Idea使用DateSource插件连接SqlServer数据库报错 问题描述 [08S0 ...
- JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。”问题解决方法
JDBC连接数据库遇到的"驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接."问题解决方法! 时间:2018-12-20 本文章向大家介绍JDB ...
- 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 解决方案
报错信息: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 环境: jdk1.8 解决过程: 经过百度后,进行了以下操作 第一步: 下载两个jar包------- ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。
@TOcom.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接.C co ...
最新文章
- [官网]Prevent a worm by updating Remote Desktop Services (CVE-2019-0708)
- 移动Web单页应用开发实践——页面结构化
- mysql 热切换_热备服务器中,切换master中切换SQL
- rtsp服务器搭建_直播系统搭建所用到的技术原理
- Error Domain=NSURLErrorDomain Code=-999 The opera
- 算法 --- 递归生成括号
- 如何理解 Objective-C Delegate
- 【ArcGIS遇上Python】Python实现Modis NDVI批量化月最大合成
- centos 获取硬件序列号_如何在 Linux 上查找硬件规格
- ubuntu下apt相关操作
- eclipse项目如何变成web项目_IntelliJ IDEA 部署 Web 项目,终于搞懂了!
- uricode(GET参数) 转 object
- Java设计模式介绍
- Could not initialize English chunker/Could not load file from classpath: ‘/en-token.bin‘
- mysql-bin position_MySQL基于binlog-position的复制
- 网站流量日志分析系统笔记(Hadoop大数据技术原理与应用)
- LibModbus库开发笔记(一):libmodbus库介绍、编译和基础工程模板
- 用matlab计算矩阵的权重,如何使用matlab计算加权平均分
- “燕云十六将”之三弟王静
- 互联网日报 | 微信聊天上线“超链接”功能;B站月付费用户达1500万;优客工场正式登陆纳斯达克...
热门文章
- Docker 部署 IntelliJ Projector,愉快玩耍 Android Studio、Idea、PyCharm 等 Swing 应用
- scratch成绩查询 电子学会图形化编程scratch等级考试四级真题和答案解析2022年6月
- CentOS安全运维检查命令
- 网站克隆工具_全员惊艳!强推5款高质量的小众实用网站
- bzoj5294: [Bjoi2018]二进制(线段树)
- C语言 数据结构 栈的线性实现 基本操作代码
- [估值-001] 净资产收益率和现值的关系
- PCIe EA (Enhanced Allocation) 介绍
- EPP (Enhanced Parallel Port 增强型并口)
- b250支持服务器cpu,b250m主板上什么cpu