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:9e5e7224-42d6-49fc-ac4b-3ac545a03621
时间: 2024-03-31 07:36:34 浏览: 120
这个错误通常是由于您的Java程序无法验证SQL Server证书而导致的。这可能是因为SQL Server使用了自签名证书或使用了不被Java信任的证书颁发机构颁发的证书。
要解决此问题,您可以采取以下步骤:
1. 下载SQL Server证书:
在浏览器中打开SQL Server的URL,导出证书并保存到您的本地计算机。导出证书时,请确保将其导出为X.509格式。
2. 将证书导入到Java的信任存储库中:
在命令行中运行以下命令(注意将`/path/to/certificate.crt`替换为您下载的证书路径):
```
keytool -importcert -file /path/to/certificate.crt -alias sqlserver -keystore /path/to/cacerts
```
您需要使用Java安装目录中的`keytool`工具运行此命令。该命令将证书导入到Java的信任存储库中,并将其别名设置为`sqlserver`。
3. 在Java程序中指定信任存储库:
在您的Java程序中,指定`javax.net.ssl.trustStore`系统属性以指向您的信任存储库路径和名称。例如:
```
System.setProperty("javax.net.ssl.trustStore", "/path/to/cacerts");
```
您需要在程序中的数据库连接代码之前设置此属性。
通过执行上述步骤,您应该能够成功建立与SQL Server的安全连接。
阅读全文