如何使用 DataGrip 通过隧道设置 DataGrip 以 SSL 模式连接 Cloud SQL

How to setup DataGrip connect Cloud SQL with SSL mode through Tunnel using DataGrip

我是 Cloud SQL 和 Cloud Security 的新手。所以现在我已经使用 Cloud SQL 并使用 Compute Engine 连接到数据库。我将它用作代理服务器并用于从我的本地计算机进行远程连接。

然后我需要使用 SSL 连接尝试创建新的客户端证书,如果我从我的代理服务器连接就可以了。

但是当我尝试使用 DataGrip 从本地计算机连接时不起作用。我收到一条错误消息。

Connection to postgres@database-server failed. [08006] Could not open SSL root certificate file /home/user/.postgresql/root.crt.

目前,要使用 SSL 正常工作,您需要按以下方式配置 DataGrip。

  1. 转到 SSH/SSL 选项卡
  2. 启用 SSL 并提供 CA 证书、客户端证书和客户端私钥的路径
  3. 转到“高级”选项卡
  4. 找到 sslmode 属性 并设置所需的验证级别,例如verify-ca
  5. 找到 sslrootcert 属性 并提供 ca.cert
  6. 的路径

另外,你有没有把你的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

这是由 42.2.2 版后 Postgres JDBC 驱动程序的更改引起的。后续版本将 ssl=true 也视为 sslmode=verify-ca 同时还引入了导致默认 SSLFactory 无法识别 JRE cacerts.

要解决此问题,请恢复到驱动程序 42.2.2 或将 sslfactory 设置为 org.postgresql.ssl.DefaultJavaSSLFactory

还有一个GitHub问题 https://github.com/pgjdbc/pgjdbc/issues/1307