我在 postgresql 中设置了 server.crt、root.crt 和 servery.key(使用http://howtoforge.com/postgresql-ssl-certificates有关说明),请设置 ssl = on 并成功重启服务。
但是,当我使用 psql 测试连接以查看它是否在 SSL 中运行时,我得到了以下信息
-bash-3.2$ psql -h localhost -U dbadmin
psql: could not open certificate file "/var/lib/pgsql/.postgresql/postgresql.crt": No such file or directory
我将证书存储在 pgsql/data/ 中,它们应该在那里,那么上面的例子和下面这个例子之间有什么脱节吗?
答案1
这是寻找客户证书文件。正如您正确指出的那样,服务器证书文件属于pgsql/data/
。客户端证书文件在 中查找$HOME/.postgresql/
。您可能以用户身份登录postgres
,而该用户恰好拥有 的主目录/var/lib/pgsql/
,因此这就是您获得该路径的方式。
因此,请将客户端证书文件放在所需位置,或以正确的用户身份登录,或重新配置服务器以使其不需要客户端证书。