连接Google CloudSQL Postgres数据库到Data Studio

12
我正在尝试将托管在Google Cloud Sql实例中的Postgres数据库连接到Data Studio。我已经按照这里找到的指示(https://support.google.com/datastudio/answer/7288010)进行了操作,但令我失望的是,我仍然无法从Data Studio连接到该数据库。
我认为问题出在SSL连接上,因为如果我在CloudSql中的选项中启用“非安全连接”,则可以成功地从Data Studio连接。我已创建了3个用于SSL连接工作的文件:
客户端证书、客户端密钥和服务器证书。
我已在Data Studio连接页面的相关字段中上传了它们: enter image description here 当我按身份验证时,会出现一个错误: 请确保私钥以PKCS8格式存在。 我尝试更改客户端密钥文件的格式,通过运行: openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.pkcs8 -nocrypt 但是,然后我会出现错误: 无法访问主机。 请仔细检查连接参数。 在此处了解有关数据库连接器的更多信息。

最后需要注意的是,如果我尝试使用SSL从本地计算机连接到数据库,并使用完全相同的密钥,但客户端密钥以pem格式,则可以成功连接。

我应该将证书转换为其他格式吗? 我觉得在SSL上将Postgres db连接到Data Studio不应该很困难,我错过了一些明显的东西吗?

非常感谢任何帮助。

谢谢。

2个回答

23

最终发现仅仅更改客户端密钥的格式就可以解决问题。 以上方法没有成功的原因是更改格式的命令不正确。

正确的命令应该是:

openssl pkcs8 -topk8 -inform PEM -outform PEM -in client-key.pem -out client-key.key -nocrypt

(注意问题中发布的 PEM 而不是 DER 参数)。

因此,Data Studio 连接正常工作!愉快的一天!


3
连接器配置会抱怨客户端密钥不是PKCS8格式,这真的很烦人,但它不会抱怨PKCS8是DER而不是PEM格式。许多人在Google DataStudio社区页面遇到了这个问题。感谢Thomas提供的答案,我希望我在浪费了一天以上的时间之前就看到了它。 - Chris McCauley
你能提供一些有关如何获取 PEM 文件的信息吗? - blong
1
@blong 你可能已经想到了,但是你可以从SQL->连接页面下载它。 - Chris McCauley
@ChrisMcCauley 谢谢你提供的额外信息! - blong

0

(关于首次获取证书)

如果您正在使用类似此处所示的 GCP 云 Postgres 连接:

  1. 前往 GCP 控制台 -> SQL
  2. 点击进入您的数据库实例 -> 连接
  3. 向下滚动至“配置 SSL 客户端证书”
  4. 点击“创建客户端证书”,取一个名称,然后下载输出文件

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接