java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed解决方法
时间: 2024-09-06 16:00:45 浏览: 189
"SQLNonTransientConnectionException: Public Key Retrieval is not allowed" 是一个数据库连接异常,通常出现在尝试从受安全控制的服务器获取公钥时,比如某些Java应用程序使用了SSL/TLS加密连接,但没有正确配置权限来访问公钥。这个错误意味着客户端没有足够的权限去自动下载并验证服务器的数字证书。
解决这个问题的方法有:
1. **检查SSL配置**:确保你的应用在建立数据库连接时允许公钥检索。这可能需要在JDBC URL、`java.security.properties` 或者 `javax.net.ssl.trustStore` 等配置文件中设置适当的信任策略。
2. **提供可信的SSL证书**:如果服务器的证书不在客户端的默认信任库中,你需要将其导入到应用的Truststore中。可以创建一个自签名的证书,或者从证书颁发机构(CA)获得证书,并存储在指定的位置。
3. **明确设置信任管理器**:你可以自定义一个X509TrustManager,或者使用如OkHttp的BouncyCastle TrustManager来处理证书验证。
4. **代码层面处理**:在代码中显式地指明是否信任某个特定的证书,而不是依赖于自动的信任过程。
相关问题
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
"java.sql.SQLNonTransientConnectionException: Public key retrieval is not allowed" 意思是在连接数据库时,程序试图获取公钥,但是被禁止了。这通常是因为数据库服务器上禁用了 SSL 或者TLS 认证。可以尝试更改数据库服务器配置或者使用不需要 SSL/TLS 的连接方式来解决问题。
java.sql.sqlnontransientconnectionexception: public key retrieval is not allowed
"java.sql.SQLNonTransientConnectionException: Public key retrieval is not allowed" 意思是在连接数据库时,程序试图获取公钥,但是被禁止了。这通常是因为数据库服务器上禁用了 SSL 或者TLS 认证。可以尝试更改数据库服务器配置或者使用不需要 SSL/TLS 的连接方式来解决问题。
阅读全文