IDEA java连接SQLServer报错套接字和PKIX

img

img

以下是pom配置文件


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lr</groupId>
    <artifactId>mybatis_study</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>10.2.0.jre8</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
            <scope>provided</scope>
        </dependency>




    </dependencies>

    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>

</project>

mybabtis_config :

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
              <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
                <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=三级联动"/>
                <property name="username" value="sa"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserInfoMapper.xml"/>
    </mappers>
</configuration>

可能是证书的问题,
步骤参考下面试一下:
第一个问题跟你的问题一致,这是他们当时的提问和官方的回答以及解决办法,


https://stackoverflow.com/questions/21076179/pkix-path-building-failed-and-unable-to-find-valid-certification-path-to-requ

PKIX path building failed - unable to find valid certification path to requested target - Microsoft Tech Community The article presents the steps to import required certificates and enable Java application to connect to Azure SQL DB/Managed Instance. If required https://techcommunity.microsoft.com/t5/azure-database-support-blog/pkix-path-building-failed-unable-to-find-valid-certification/ba-p/2591304

解决办法:如果你eclipse Installed JREs 添加的是jdk,比如我的就在D:\Program Files\software\Java\jdk1.8.0_191\jre\lib\security下面的java.security文件下,将jdk.tls.disabledAlgorithms和jdk.tls.legacyAlgorithms 后面的3DES_EDE_CBC给删掉,就可以了。如果eclipse Installed JREs添加的是jre,则把jre下面的java.security文件这样改。
https://blog.csdn.net/ADNAP7/article/details/100078412/

本地数据库版本和驱动包版本是否一致。

在 JDK 8 及更早版本中,编辑该 /lib/security/java.security 文件并 3DES_EDE_CBC 从 jdk.tls.legacyAlgorithms 安全属性中删除。
官方文档指出:请注意,这是一个低风险的更改。它不太可能导致回归,因为它只会影响协商算法的顺序。如果没有其他非遗留算法可用,则仍将使用 3DES(如果在遗留算法列表上列出)。

把 jdk 下面的 java.security 中的,去掉 3DES_EDE_CBC 可以使用 jdbc 连上 sqlserver。

在 Java 8 默认禁用【加密套件】:“SSL_RSA_WITH_3DES_EDE_CBC_SHA”.
然后要连接成功的话,要开启 “SSL_RSA_WITH_3DES_EDE_CBC_SHA”,找到的答案是:
打开文件夹(JAVA_HOME)/jre/lib/security 中的安全策略文件:Java.security
修改 jdk.tls.disabledAlgorithms 选项。
Java 8 的 jdk.tls.disabledAlgorithms 默认值:
jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024,
EC keySize < 224, DES40_CBC, RC4_40,3DES_EDE_CBC

为了开启 SSL_RSA_WITH_3DES_EDE_CBC_SHA,将 3DES_EDE_CBC 注释掉:

Java 8 的 jdk.tls.disabledAlgorithms 默认值:
jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024,
EC keySize < 224, DES40_CBC, RC4_40
#,3DES_EDE_CBC

参考如下链接:https://www.cnblogs.com/blsz/p/11530380.html

不用1433这个ssl端口,用另一个不需要证书验证的普通端口连接