我在设置两台postgres服务器时遇到问题,无法使用DBLink通过Trusted,Verified SSL进行通信。
我的设置: AWS上托管EC2的2x 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的加密根证书和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
知道我做错了吗?
答案 0 :(得分:0)
解决了它。事实证明,我需要在我的“服务器”上的证书文件中添加完整的信任链。
我使用comodo 90天证书而不是让加密证书。
现在,我在“服务器”
上布置了server.crt新发布的comodo证书。
2个comodo中级证书。
根comodo证书
我用这个工具检查我的链接。 https://tools.keycdn.com/ssl