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

Posted

技术标签:

【中文标题】如何设置 DataGrip 通过使用 DataGrip 的隧道以 SSL 模式连接 Cloud SQL【英文标题】:How to setup DataGrip connect Cloud SQL with SSL mode through Tunnel using DataGrip 【发布时间】:2019-06-25 10:59:42 【问题描述】:

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

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

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

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

【问题讨论】:

您使用什么版本的 DataGrip? 我使用 2019.1 版本,并使用从 Google Cloud SQL 生成并在 SSL 选项卡中使用的所有私钥文件,并包含用于连接到代理服务器的 ssh 配置。 尝试更新到最新的 DataGrip 版本。我们对 SSL 子系统进行了重大改造 【参考方案1】:

这是由于版本 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

【讨论】:

【参考方案2】:

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

    转到 SSH/SSL 选项卡 启用 SSL 并提供 CA 证书、客户端证书和客户端私钥的路径 转到高级选项卡 找到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

【讨论】:

仅供参考,我尝试通过 SSH 隧道和 SSL 连接到 Cloud SQL。现在它仍然无法正常工作。我尝试使用 SSL 模式在不使用 SSH 隧道的情况下进行连接仍然遇到相同的错误。所以我想知道来自谷歌的证书文件。不做任何事情就可以使用吗?那么 root.crt 呢?实际上,在我更新 DataGrip 的版本之前它已经工作了。所以我尝试使用其他软件我也遇到了同样的错误。对于您喜欢的 URL,我已经尝试过了。它通过代理服务器工作。 在我尝试按照你的建议去做之后。我收到一个新错误连接到 postgres@db-server 失败。 [08006] SSL 错误:收到致命警报:unexpected_message

以上是关于如何设置 DataGrip 通过使用 DataGrip 的隧道以 SSL 模式连接 Cloud SQL的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 DataGrip 每 100 行创建一个 sql 插入语句

如何通过 Jetbrains DataGrip 连接到远程 MS SQL Server 数据库?

如何更改 DataGrip 中的字符集?

如何将 datagrip 设置为与主机数据库相同的时区

DataGrip如何将创建的console保存路径设置到指定目录

DataGrip - 如何查看通过表格编辑器所做的所有更改的历史记录