postgresql - 从 wildfly 设置 Postgres SSL 连接

标签 postgresql ssl wildfly google-cloud-sql

我正在尝试建立从 wildfly 到 CloudSQL Postgres 数据库的 SSL 连接。 从 CloudSQL(server-ca.pem、client-cert.pem 和 client-key.pem)下载 ssl 证书后,我按以下方式创建了 keystore 和 trustore:

keytool -import -alias server -file server-ca.pem -keystore truststore.jks -storepass password
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -out client.p12 -name client
keytool -importkeystore -deststorepass password -destkeystore keystore.jks -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass password -alias client

然后我更改了 JAVA_OPTS 环境变量,以提供创建的 keystore :

export JAVA_OPTS="-server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=password"

然后我在 standalone.xml 中更改了 postgres 数据源:

jdbc:postgresql://XX.XX.XX.XX:5432/db?sslmode=require

在wildfly启动时,我得到了以下错误:

org.postgresql.util.PSQLException: FATAL: connection requires a valid client certificate

有什么想法吗?

最佳答案

Cloud SQL 在您创建实例时自动创建服务器证书。只要服务器证书有效,证书就有有效期;在该日期之后,它不再有效,并且客户端无法使用该证书与您的实例建立安全连接。

https://cloud.google.com/sql/docs/postgres/configure-ssl-instance

关于postgresql - 从 wildfly 设置 Postgres SSL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57020027/

相关文章:

java - 如何调试ClassNotFoundException : org. apache.struts2.tiles.StrutsTilesListener?

java - 为什么我无法获取在 Wildfly 配置中添加的缓存?

Django + Postgresql -> 未处理的异常

ruby-on-rails - 默认情况下,如何在 Rails 中使 cookie 安全(仅限 https)?

java - 使用相互身份验证时,WebServiceContext.getUserPrincipal 返回 "ANONYMOUS"

apache - 当我想从 http 重定向到 https 时,它会发送到另一个网站

java - 如何在 WildFly 10 中动态更改 JMS 队列 MDB 池大小

sql - PostgreSQL:在同一查询的不同列中重用列数据

postgresql - 如何在 CentOS 上运行 pg_ctlcluster?

function - postgresql中的第n个百分位数计算