如何为psql指定客户端证书?


11

我有一个Postgres服务器,其用户dev需要客户端证书才能登录。我正在使用命令psql "sslmode=require user=dev host=db.prod",该命令给了我psql: FATAL: connection requires a valid client certificate

我知道证书在服务器上的什么位置。我的问题是,如何指定客户端证书的位置psql



Answers:


8

如@Milen链接的文档中所述,您可以通过设置PGSSLCERTPGSSLKEY环境变量,或通过添加sslcert=<cert location> sslkey=<key location>到连接字符串来完成此操作。


2
我将在此处指出,PGSSLCERT并且PGSSLKEY还允许指定路径,因此请不要cat将证书或密钥本身键入这些变量。
SeldomNeedy

8

最终结果看起来像 $>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"

所有变量都在这里


如果将root crt放在〜/ .postgreqsl /中,则无需提供任何密钥。如果我将其放在其他地方并提供sslrootcert,突然间我还必须提供密钥-您知道它是如何工作的吗?
Radu Simionescu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.