发布于2023-02-04 22:50 阅读(186) 评论(0) 点赞(13) 收藏(5)
我无法将 Google Cloud PostgreSQL 与 JDBC 连接。
Java 版本:1.8.0_162
PostgreSQL JDBC 版本:42.2.2
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
System.out.println("Class not found");
}
String url = "jdbc:postgresql://ipaddresshere:5432/postgres";
Properties props = new Properties();
props.setProperty("user","postgres");
props.setProperty("password","passwordhere");
props.setProperty("ssl","true");
props.setProperty("sslcert","/Users/bguler/Desktop/GoogleCloudPGSSL/client-cert.pem");
props.setProperty("sslkey","/Users/bguler/Desktop/GoogleCloudPGSSL/client-key.pem");
props.setProperty("sslrootcert","/Users/bguler/Desktop/GoogleCloudPGSSL/server-ca.pem");
try {
Connection conn = DriverManager.getConnection(url, props);
System.out.println(conn);
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
我测试证书路径是正确的。
它抛出一个错误;
原因:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
SSL 错误:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
我可以毫无问题地通过 psql 连接到终端;
psql "sslrootcert=server-ca.pem \
sslcert=client-cert.pem sslkey=client-key.pem \
hostaddr=ipaddress \
port=5432 \
user=postgres dbname=postgres"
如果 Postgres 服务器使用的证书不受 Java 默认信任库的信任,您将需要添加它。
首先,将您的证书转换为 DER 格式:
openssl x509 -outform der -in server-ca.pem -out server-ca.der
然后,将其导入密钥库:
keytool -import -trustcacerts -alias your-alias -keystore cacerts -file server-ca.der
或者,您可以使用 Java 系统属性来更改通过添加命令行参数使用的信任库:
-Djavax.net.ssl.trustStore=<path to your trusstore>.jks -Djavax.net.ssl.trustStorePassword=<your password>
通过将以下内容添加到启动命令行,调试 Java SSL 类也很有帮助:
-Djavax.net.debug=ssl,handshake:verbose
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/641610/1f92931dffe7b605e333/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!