我正在尝试建立一个从wildfly到CloudSQL Postgres DB的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环境变量,以提供创建的密钥库:
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有什么想法吗?
发布于 2019-07-16 05:45:24
云SQL会在您创建实例时自动创建服务端证书。只要服务器证书有效,证书就有到期日期;在该日期之后,它就不再有效,并且客户端无法使用该证书与您的实例建立安全连接。
https://cloud.google.com/sql/docs/postgres/configure-ssl-instance
https://stackoverflow.com/questions/57020027
复制相似问题