文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-05 09:15

关注

                      

其实解决方法很简单,只需要加上一个字段就行了,只要是关于套接字连接错误的都可以这样解决,而且不用修改SQL server管理器的配置

                                     trustServerCertificate=true;

 trustServerCertificate=true;

在不同的环境下有不同的加法,具体情况请往下看

说明:我的1433端口被占用了,所以使用的是1434端口

1.1

先看报错信息:ERROR c.a.d.p.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://localhost;DatabaseName=PT_STORE_HLW, errorCode 0, state 08S01

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“SQL Server 未返回响应。连接已关闭。 ClientConnectionId:22dc49b0-221d-4a51-9a84-8d507658df6e”。
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668)

下面这一段是在测试idea使用数据源连接数据库时

08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:64509506-0bbe-41b4-87e7-3c9ce5085eed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. 

ERROR c.a.d.p.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://localhost;DatabaseName=PT_STORE_HLW, errorCode 0, state 08S01com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“SQL Server 未返回响应。连接已关闭。 ClientConnectionId:22dc49b0-221d-4a51-9a84-8d507658df6e”。at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1323)at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156)at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150)at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1560)at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1623)at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2468)Caused by: java.io.IOException: SQL Server 未返回响应。连接已关闭。 ClientConnectionId:22dc49b0-221d-4a51-9a84-8d507658df6eat com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:651)at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:708)at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:700)at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:895)at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:883)at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)at sun.security.ssl.InputRecord.read(InputRecord.java:503)at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1618)... 10 common frames omitted

2.1

jidbc连接:

   String RL="jdbc:sqlserver://localhost:1434;database=数学建模;encrypt=true;trustServerCertificate=true"

完整代码如下:

public static void main(String[] args) {        //使用jbdc进行驱动;        //String RL="jdbc:sqlserver://localhost:1434;"+"DatabaseName=Student_info";        //只需要跳过检查就行并不用那些又是删除又是修改的        String RL="jdbc:sqlserver://localhost:1434;database=数学建模;encrypt=true;trustServerCertificate=true";        String sqlStr="select *\r\n"                + "from 颜色\r\n"              ;        try {            //加载驱动包            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");            System.out.println("启动成功");            String userName="eclipse";            String userPwd="wkz123";            //创建数据库连接            Connection dbConn= DriverManager.getConnection(RL,userName,userPwd);            System.out.println("链接成功");            //向数据库发送个东西            Statement stmt=dbConn.createStatement();            ResultSet rs=stmt.executeQuery(sqlStr);//执行数据库查询语句存在于sqlStr中            while(rs.next())            {//                String  str=rs.getString("文物编号")+"   "+rs.getNString("纹饰")+                        "   "+rs.getString("类型")+"   "+rs.getString("颜色")+                        "   "+rs.getString("表面风化");                System.out.println(str);            }            dbConn.close();        }catch(Exception e) {            e.printStackTrace(System.out);        }    }

2.2

mybatis连接:

                                                

完整代码:

                                                                                                                                                 

2.3

spring boot+druid+mybatis plus连接:

spring.datasource.url=jdbc:sqlserver://localhost:1434;database=server;encrypt=true;trustServerCertificate=truespring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriverspring.datasource.url=jdbc:sqlserver://localhost:1434;database=server;encrypt=true;trustServerCertificate=truespring.datasource.username=eclipsespring.datasource.password=wkz123mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImplserver.port=8088

2.4

在idea中测试链接数据库:

报错信息:

08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:64509506-0bbe-41b4-87e7-3c9ce5085eed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. 

 

08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:64509506-0bbe-41b4-87e7-3c9ce5085eed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. 

解决方法:

trustServerCertificate改为true,如下图所示:

 

来源地址:https://blog.csdn.net/qq_61920297/article/details/128095810

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯