不修改服务器的java.security情况下,如何仅仅通过代码层面的修改(修改连接,加参数等)解决报错问题?
在公司,我无权做服务器的修改,仅能修改代码
package com.suiwei.frame;
import java.sql.*;
public class DatabaseConnection {
public static void main(String[] args) {
// 定义连接信息
String url = "jdbc:sqlserver://10.10.10.10:1433;databaseName=demo";
String username = "12345";
String password = "12345";
// 创建连接
try (Connection conn = DriverManager.getConnection(url, username, password)) {
System.out.println("成功连接到 MySQL 数据库!");
// 执行查询
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM stoptime limit 500");
// 输出结果
while (resultSet.next()) {
String id = resultSet.getString("id");
System.out.println(id);
}
} catch (SQLException e) {
System.out.println("连接 MySQL 数据库失败!");
e.printStackTrace();
}
}
}
报错如下
"C:Program FilesJavajdk1.8.0_201binjava.exe" "-javaagent:C:Program FilesJetBrainsIntelliJ IDEA 2022.3.2libidea_rt.jar=8553:C:Program FilesJetBrainsIntelliJ IDEA 2022.3.2bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_201jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_201jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_201jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_201jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_201jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_201jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_201jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_201jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_201jrelibextnashorn.jar;C:Program FilesJavajdk1.8.0_201jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_201jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_201jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_201jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_201jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_201jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_201jrelibjce.jar;C:Program FilesJavajdk1.8.0_201jrelibjfr.jar;C:Program FilesJavajdk1.8.0_201jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_201jrelibjsse.jar;C:Program FilesJavajdk1.8.0_201jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_201jrelibplugin.jar;C:Program FilesJavajdk1.8.0_201jrelibresources.jar;C:Program FilesJavajdk1.8.0_201jrelibrt.jar;D:demospringbootDemotargettest-classes;D:demospringbootDemotargetclasses;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-web2.3.7.RELEASEspring-boot-starter-web-2.3.7.RELEASE.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter2.3.7.RELEASEspring-boot-starter-2.3.7.RELEASE.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-logging2.3.7.RELEASEspring-boot-starter-logging-2.3.7.RELEASE.jar;D:mavenrepositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;D:mavenrepositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;D:mavenrepositoryorgapachelogginglog4jlog4j-to-slf4j2.13.3log4j-to-slf4j-2.13.3.jar;D:mavenrepositoryorgapachelogginglog4jlog4j-api2.13.3log4j-api-2.13.3.jar;D:mavenrepositoryorgslf4jjul-to-slf4j1.7.30jul-to-slf4j-1.7.30.jar;D:mavenrepositoryjakartaannotationjakarta.annotation-api1.3.5jakarta.annotation-api-1.3.5.jar;D:mavenrepositoryorgyamlsnakeyaml1.26snakeyaml-1.26.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-json2.3.7.RELEASEspring-boot-starter-json-2.3.7.RELEASE.jar;D:mavenrepositorycomfasterxmljacksoncorejackson-databind2.11.3jackson-databind-2.11.3.jar;D:mavenrepositorycomfasterxmljacksoncorejackson-annotations2.11.3jackson-annotations-2.11.3.jar;D:mavenrepositorycomfasterxmljacksoncorejackson-core2.11.3jackson-core-2.11.3.jar;D:mavenrepositorycomfasterxmljacksondatatypejackson-datatype-jdk82.11.3jackson-datatype-jdk8-2.11.3.jar;D:mavenrepositorycomfasterxmljacksondatatypejackson-datatype-jsr3102.11.3jackson-datatype-jsr310-2.11.3.jar;D:mavenrepositorycomfasterxmljacksonmodulejackson-module-parameter-names2.11.3jackson-module-parameter-names-2.11.3.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-tomcat2.3.7.RELEASEspring-boot-starter-tomcat-2.3.7.RELEASE.jar;D:mavenrepositoryorgapachetomcatembedtomcat-embed-core9.0.41tomcat-embed-core-9.0.41.jar;D:mavenrepositoryorgglassfishjakarta.el3.0.3jakarta.el-3.0.3.jar;D:mavenrepositoryorgapachetomcatembedtomcat-embed-websocket9.0.41tomcat-embed-websocket-9.0.41.jar;D:mavenrepositoryorgspringframeworkspring-web5.2.12.RELEASEspring-web-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-beans5.2.12.RELEASEspring-beans-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-webmvc5.2.12.RELEASEspring-webmvc-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-aop5.2.12.RELEASEspring-aop-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-context5.2.12.RELEASEspring-context-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-expression5.2.12.RELEASEspring-expression-5.2.12.RELEASE.jar;D:mavenrepositorycomalibabafastjson1.2.83fastjson-1.2.83.jar;D:mavenrepositoryorgprojectlomboklombok1.18.16lombok-1.18.16.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-test2.3.7.RELEASEspring-boot-starter-test-2.3.7.RELEASE.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-test2.3.7.RELEASEspring-boot-test-2.3.7.RELEASE.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-test-autoconfigure2.3.7.RELEASEspring-boot-test-autoconfigure-2.3.7.RELEASE.jar;D:mavenrepositorycomjaywayjsonpathjson-path2.4.0json-path-2.4.0.jar;D:mavenrepositorynetminidevjson-smart2.3json-smart-2.3.jar;D:mavenrepositorynetminidevaccessors-smart1.2accessors-smart-1.2.jar;D:mavenrepositoryjakartaxmlbindjakarta.xml.bind-api2.3.3jakarta.xml.bind-api-2.3.3.jar;D:mavenrepositoryjakartaactivationjakarta.activation-api1.2.2jakarta.activation-api-1.2.2.jar;D:mavenrepositoryorgassertjassertj-core3.16.1assertj-core-3.16.1.jar;D:mavenrepositoryorghamcresthamcrest2.2hamcrest-2.2.jar;D:mavenrepositoryorgjunitjupiterjunit-jupiter5.6.3junit-jupiter-5.6.3.jar;D:mavenrepositoryorgjunitjupiterjunit-jupiter-api5.6.3junit-jupiter-api-5.6.3.jar;D:mavenrepositoryorgapiguardianapiguardian-api1.1.0apiguardian-api-1.1.0.jar;D:mavenrepositoryorgopentest4jopentest4j1.2.0opentest4j-1.2.0.jar;D:mavenrepositoryorgjunitplatformjunit-platform-commons1.6.3junit-platform-commons-1.6.3.jar;D:mavenrepositoryorgjunitjupiterjunit-jupiter-params5.6.3junit-jupiter-params-5.6.3.jar;D:mavenrepositoryorgjunitjupiterjunit-jupiter-engine5.6.3junit-jupiter-engine-5.6.3.jar;D:mavenrepositoryorgjunitplatformjunit-platform-engine1.6.3junit-platform-engine-1.6.3.jar;D:mavenrepositoryorgmockitomockito-core3.3.3mockito-core-3.3.3.jar;D:mavenrepositorynetbytebuddybyte-buddy1.10.18byte-buddy-1.10.18.jar;D:mavenrepositorynetbytebuddybyte-buddy-agent1.10.18byte-buddy-agent-1.10.18.jar;D:mavenrepositoryorgobjenesisobjenesis2.6objenesis-2.6.jar;D:mavenrepositoryorgmockitomockito-junit-jupiter3.3.3mockito-junit-jupiter-3.3.3.jar;D:mavenrepositoryorgskyscreamerjsonassert1.5.0jsonassert-1.5.0.jar;D:mavenrepositorycomvaadinexternalgoogleandroid-json.0.20131108.vaadin1android-json-0.0.20131108.vaadin1.jar;D:mavenrepositoryorgspringframeworkspring-core5.2.12.RELEASEspring-core-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-jcl5.2.12.RELEASEspring-jcl-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-test5.2.12.RELEASEspring-test-5.2.12.RELEASE.jar;D:mavenrepositoryorgxmlunitxmlunit-core2.7.0xmlunit-core-2.7.0.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-devtools2.3.7.RELEASEspring-boot-devtools-2.3.7.RELEASE.jar;D:mavenrepositoryorgspringframeworkbootspring-boot2.3.7.RELEASEspring-boot-2.3.7.RELEASE.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-autoconfigure2.3.7.RELEASEspring-boot-autoconfigure-2.3.7.RELEASE.jar;D:mavenrepositorycombaomidoumybatis-plus-boot-starter3.4.3mybatis-plus-boot-starter-3.4.3.jar;D:mavenrepositorycombaomidoumybatis-plus3.4.3mybatis-plus-3.4.3.jar;D:mavenrepositorycombaomidoumybatis-plus-extension3.4.3mybatis-plus-extension-3.4.3.jar;D:mavenrepositorycombaomidoumybatis-plus-core3.4.3mybatis-plus-core-3.4.3.jar;D:mavenrepositorycombaomidoumybatis-plus-annotation3.4.3mybatis-plus-annotation-3.4.3.jar;D:mavenrepositorycomgithubjsqlparserjsqlparser4.0jsqlparser-4.0.jar;D:mavenrepositoryorgmybatismybatis3.5.7mybatis-3.5.7.jar;D:mavenrepositoryorgmybatismybatis-spring2.0.6mybatis-spring-2.0.6.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-jdbc2.3.7.RELEASEspring-boot-starter-jdbc-2.3.7.RELEASE.jar;D:mavenrepositorycomzaxxerHikariCP3.4.5HikariCP-3.4.5.jar;D:mavenrepositoryorgspringframeworkspring-jdbc5.2.12.RELEASEspring-jdbc-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkspring-tx5.2.12.RELEASEspring-tx-5.2.12.RELEASE.jar;D:mavenrepositorymysqlmysql-connector-java8.0.22mysql-connector-java-8.0.22.jar;D:mavenrepositorycommicrosoftsqlservermssql-jdbc10.2.3.jre8mssql-jdbc-10.2.3.jre8.jar;D:mavenrepositorycomalibabadruid-spring-boot-starter1.2.6druid-spring-boot-starter-1.2.6.jar;D:mavenrepositorycomalibabadruid1.2.6druid-1.2.6.jar;D:mavenrepositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;D:mavenrepositoryorgquartz-schedulerquartz2.3.2quartz-2.3.2.jar;D:mavenrepositorycommchangemchange-commons-java.2.15mchange-commons-java-0.2.15.jar;D:mavenrepositoryorgapachecommonscommons-lang33.10commons-lang3-3.10.jar;D:mavenrepositoryorgapachecommonscommons-collections44.2commons-collections4-4.2.jar;D:mavenrepositorycommons-beanutilscommons-beanutils1.9.4commons-beanutils-1.9.4.jar;D:mavenrepositorycommons-loggingcommons-logging1.2commons-logging-1.2.jar;D:mavenrepositorycommons-collectionscommons-collections3.2.2commons-collections-3.2.2.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-web-services2.3.7.RELEASEspring-boot-starter-web-services-2.3.7.RELEASE.jar;D:mavenrepositorycomsunxmlmessagingsaajsaaj-impl1.5.2saaj-impl-1.5.2.jar;D:mavenrepositoryjakartaxmlsoapjakarta.xml.soap-api1.4.2jakarta.xml.soap-api-1.4.2.jar;D:mavenrepositoryorgjvnetstaxexstax-ex1.8.3stax-ex-1.8.3.jar;D:mavenrepositorycomsunactivationjakarta.activation1.2.2jakarta.activation-1.2.2.jar;D:mavenrepositoryjakartaxmlwsjakarta.xml.ws-api2.3.3jakarta.xml.ws-api-2.3.3.jar;D:mavenrepositoryjakartajwsjakarta.jws-api2.1.0jakarta.jws-api-2.1.0.jar;D:mavenrepositoryorgspringframeworkspring-oxm5.2.12.RELEASEspring-oxm-5.2.12.RELEASE.jar;D:mavenrepositoryorgspringframeworkwsspring-ws-core3.0.10.RELEASEspring-ws-core-3.0.10.RELEASE.jar;D:mavenrepositoryorgspringframeworkwsspring-xml3.0.10.RELEASEspring-xml-3.0.10.RELEASE.jar;D:mavenrepositoryorgapachecxfcxf-spring-boot-starter-jaxws3.4.3cxf-spring-boot-starter-jaxws-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-spring-boot-autoconfigure3.4.3cxf-spring-boot-autoconfigure-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-transports-http3.4.3cxf-rt-transports-http-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-frontend-jaxws3.4.3cxf-rt-frontend-jaxws-3.4.3.jar;D:mavenrepositoryxml-resolverxml-resolver1.2xml-resolver-1.2.jar;D:mavenrepositoryorgow2asmasm9.1asm-9.1.jar;D:mavenrepositoryorgapachecxfcxf-rt-bindings-soap3.4.3cxf-rt-bindings-soap-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-wsdl3.4.3cxf-rt-wsdl-3.4.3.jar;D:mavenrepositorywsdl4jwsdl4j1.6.3wsdl4j-1.6.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-databinding-jaxb3.4.3cxf-rt-databinding-jaxb-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-bindings-xml3.4.3cxf-rt-bindings-xml-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-frontend-simple3.4.3cxf-rt-frontend-simple-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-ws-addr3.4.3cxf-rt-ws-addr-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-rt-ws-policy3.4.3cxf-rt-ws-policy-3.4.3.jar;D:mavenrepositoryorgapacheneethineethi3.1.1neethi-3.1.1.jar;D:mavenrepositoryorgapachecxfcxf-rt-features-metrics3.4.3cxf-rt-features-metrics-3.4.3.jar;D:mavenrepositoryjakartavalidationjakarta.validation-api2.0.2jakarta.validation-api-2.0.2.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-starter-validation2.3.7.RELEASEspring-boot-starter-validation-2.3.7.RELEASE.jar;D:mavenrepositoryorghibernatevalidatorhibernate-validator6.1.6.Finalhibernate-validator-6.1.6.Final.jar;D:mavenrepositoryorgjbossloggingjboss-logging3.4.1.Finaljboss-logging-3.4.1.Final.jar;D:mavenrepositorycomfasterxmlclassmate1.5.1classmate-1.5.1.jar;D:mavenrepositoryorgapachecxfcxf-rt-transports-http-jetty3.4.3cxf-rt-transports-http-jetty-3.4.3.jar;D:mavenrepositoryorgapachecxfcxf-core3.4.3cxf-core-3.4.3.jar;D:mavenrepositoryorgglassfishjaxbjaxb-runtime2.3.3jaxb-runtime-2.3.3.jar;D:mavenrepositoryorgglassfishjaxbtxw22.3.3txw2-2.3.3.jar;D:mavenrepositorycomsunistackistack-commons-runtime3.0.11istack-commons-runtime-3.0.11.jar;D:mavenrepositorycomfasterxmlwoodstoxwoodstox-core6.2.4woodstox-core-6.2.4.jar;D:mavenrepositoryorgcodehauswoodstoxstax2-api4.2.1stax2-api-4.2.1.jar;D:mavenrepositoryorgapachewsxmlschemaxmlschema-core2.2.5xmlschema-core-2.2.5.jar;D:mavenrepositoryorgeclipsejettyjetty-server9.4.35.v20201120jetty-server-9.4.35.v20201120.jar;D:mavenrepositoryjavaxservletjavax.servlet-api4.0.1javax.servlet-api-4.0.1.jar;D:mavenrepositoryorgeclipsejettyjetty-util9.4.35.v20201120jetty-util-9.4.35.v20201120.jar;D:mavenrepositoryorgeclipsejettyjetty-io9.4.35.v20201120jetty-io-9.4.35.v20201120.jar;D:mavenrepositoryorgeclipsejettyjetty-security9.4.35.v20201120jetty-security-9.4.35.v20201120.jar;D:mavenrepositoryorgeclipsejettyjetty-continuation9.4.35.v20201120jetty-continuation-9.4.35.v20201120.jar;D:mavenrepositoryorgeclipsejettyjetty-http9.4.35.v20201120jetty-http-9.4.35.v20201120.jar;D:mavenrepositoryorgspringframeworkbootspring-boot-configuration-processor2.3.7.RELEASEspring-boot-configuration-processor-2.3.7.RELEASE.jar" com.suiwei.frame.DatabaseConnection
连接 MySQL 数据库失败!
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:9bea5f22-eac2-4047-af5a-16ef9a39363f
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)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:936)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.suiwei.frame.DatabaseConnection.main(DatabaseConnection.java:14)
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 target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
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:1955)
... 8 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at 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:262)
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:1636)
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:1091)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
... 16 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at 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)
... 24 more
Process finished with exit code 0
解决驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
之前遇到
+jdbc:sqlserver://10.10.10.10:1433;databaseName=demo;encrypt=true;trustServerCertificate=true
-jdbc:sqlserver://10.10.10.10:1433;databaseName=demo
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>12.2.0.jre8</version>
</dependency>