gpt4 book ai didi

database - 如何让 Postgres 使用受信任的 SSL 证书对另一个 Postgres 数据库进行 dblink

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:18 32 4
gpt4 key购买 nike

我在设置两个 postgres 服务器以使用 DBLink 通过受信任、经过验证的 SSL 进行通信时遇到问题。

我的设置:使用 EC2 托管的 AWS 上的 2 个 Windows Server 2016一台电脑是“客户端”,另一台电脑是“服务器”在每台服务器上,我都有 Postgres 9.6。 (通过 BigSQL Gui 安装程序安装)

我正在尝试让“客户端”通过 dblink 对“服务器”执行“已验证、完整”的 SSL。

这是我要执行的设置步骤。

“服务器”postgresql.conf 设置

ssl = on  
..
ssl_cert_file = 'server.crt' # The cert that I got from SSLForFree.com
ssl_key_file = 'server.key' # The private key that I got from SSLForFree.com

“服务器”pg_hba.conf 设置

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD
# IPv4 local & remote connections:
host all all 127.0.0.1/32 trust
#host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 trust
hostssl all all 0.0.0.0/0 md5 # new

“客户端”计算机我将 Let's Encrypt Root Certificate 和 CA Bundle 放入此文件中。C:/PostgreSQL/data/pg96/root.crt

我在 PSQL 的“客户端”中运行的命令。

SELECT * FROM dblink( 'dbname=postgres port=5432 host=test.example.com user=postgres password=123456 sslmode=verify-ca sslrootcert=C:/PostgreSQL/data/pg96/root.crt', 'SELECT now()::TEXT;') AS t(a Text);

我的错误

ERROR:  could not establish connection
DETAIL: SSL error: certificate verify failed

知道我做错了什么吗?

最佳答案

解决了。事实证明,我需要在我的“服务器”上的证书文件中添加完整的信任链。

我使用了 comodo 90 天证书而不是 lets encrypt 证书。

现在我在“服务器”上布置了 server.crt

新颁发的 comodo 证书 ontop。

2 个 comodo 中间证书。

根comodo证书

我使用这个工具来检查我的链接。 https://tools.keycdn.com/ssl

关于database - 如何让 Postgres 使用受信任的 SSL 证书对另一个 Postgres 数据库进行 dblink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50631557/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com