我是Cloud SQL和Cloud Security的新手。因此,现在我已经使用Cloud SQL并通过Compute Engine连接到数据库。我将其用作代理服务器,并用于从本地计算机进行远程连接。
然后我需要使用SSL连接尝试创建新的客户端证书,并且如果从代理服务器进行连接也可以。
但是当我尝试使用DataGrip从本地计算机连接时不起作用。我收到一条错误消息。
与postgres @ database-server的连接失败。 [08006]无法打开SSL根证书文件/home/user/.postgresql/root.crt。
答案 0 :(得分:3)
这是由42.2.2版之后的Postgres JDBC驱动程序更改引起的。后续版本将 ssl = true 视为 sslmode = verify-ca ,同时还引入了导致默认SSLFactory无法识别JRE certs 。
要解决此问题,请还原至驱动程序42.2.2或将sslfactory设置为 org.postgresql.ssl.DefaultJavaSSLFactory
还有一个GitHub问题 https://github.com/pgjdbc/pgjdbc/issues/1307
答案 1 :(得分:0)
目前,要使用SSL正常工作,您需要通过以下方式配置DataGrip。
sslmode
属性并设置所需的验证级别,例如验证ca sslrootcert
属性并提供指向ca.cert
的路径此外,您是否将root.crt
放入了/home/user/.postgresql/root.crt
?
此外,如果要引用https://cloud.google.com/sql/docs/postgres/connect-admin-ip#connect-ssl,请使用以下参数:
sslmode=verify-ca
sslrootcert=/path/to/your/server-ca.pem
ca file=/path/to/your/server-ca.pem
client certificate file=/path/to/your/client-cert.pem
client key file=/path/to/your/client-key.pem