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

时间:2019-06-25 10:59:42

标签: postgresql ssl datagrip

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

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

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

  

与postgres @ database-server的连接失败。   [08006]无法打开SSL根证书文件/home/user/.postgresql/root.crt。

2 个答案:

答案 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。

  1. 转到“ SSH / SSL”标签
  2. 启用SSL并提供指向CA证书,客户端证书和客户端私钥的路径
  3. 转到“高级”标签
  4. 找到sslmode属性并设置所需的验证级别,例如验证ca
  5. 找到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