为Postgresql数据库设置Google云证书(主机名不匹配)



我有一个postgreSQL数据库设置在谷歌云。为了通过SSL连接,google cloud提供了3个。pem文件,server-ca,client-cert和'client-key'。

我正在使用一个不同的工具,它总是在~/中使用SSL的设置。postgresql/文件夹。因此,我将google cloud提供的。pem文件设置为相应的。crt文件。为了测试这是否有效,我使用下面的命令:

PGSSLMODE=verify-full psql -h 12.34.5.78 -d postgres -U postgres 

输出如下:

psql: error: connection to server at "12.34.5.78", port 5432 failed: 
server certificate for
"project_name:instance_name" does not match host name "12.34.5.78"

似乎证书混淆了主机名,有人知道如何解决这个问题吗?

云提供商在没有将证书的CN或SAN连接到他们的DNS的情况下颁发证书似乎很奇怪。

但是既然他们已经这样做了,一个比编辑/etc/hosts更少侵入性的工作可能是在证书中指定主机名到host字段,同时将ip地址放入hostaddr字段。但是我不认为hostaddr有一个'命令行参数'的形式,所以你必须切换到使用'关键字列表'形式的连接字符串。

相关内容

最新更新