程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用 SSL 通过 JDBC 连接到 Google Cloud PostgreSQL

发布于2023-02-04 22:50     阅读(265)     评论(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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)