我拼上去了之后出现了如下报错:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
时间: 2023-07-20 19:43:59 浏览: 86
这个错误通常是由于Java无法验证服务器证书引起的,可能是因为服务器证书不是由受信任的证书颁发机构(CA)签发的,或者是因为Java TrustStore中缺少所需的根证书。在这种情况下,你需要将服务器证书添加到Java TrustStore中,以便Java可以验证该证书。
以下是将服务器证书添加到Java TrustStore的一些步骤:
1. 获取服务器证书
你可以使用以下命令从服务器获取SSL证书:
```
openssl s_client -connect your.server.com:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > server.crt
```
将`your.server.com`替换为你的服务器域名或IP地址。
2. 将服务器证书导入Java TrustStore
使用以下命令将服务器证书导入Java TrustStore:
```
keytool -import -v -trustcacerts -alias your.server.com -file server.crt -keystore cacerts
```
该命令将服务器证书导入Java的默认TrustStore中,该TrustStore通常位于JRE安装目录的`lib/security/cacerts`文件中。在导入证书时,你需要输入TrustStore的密码,默认密码为`changeit`。
请注意,如果你正在使用自定义TrustStore,则需要将`cacerts`替换为你的TrustStore文件的路径。
3. 在JDBC URL中指定TrustStore
在JDBC URL中指定TrustStore的方法已在之前的回答中给出。请确保在JDBC URL中正确指定了TrustStore文件的路径和密码。
完成上述步骤后,重新运行你的应用程序,应该可以成功连接到Oracle数据库了。
阅读全文