我希望配置SSL,以便客户端只能要求由根CA ca.crt签名的证书,然后每个客户端必须使用其颁发的证书(例如证书postgresql.crt、密钥postgresql.key和密码)连接到数据库服务器。在此允许数据库服务器在身份验证时验证每个客户端证书。
Postgres v14服务器吐露:
...
ssl = on
ssl_ca_file = ca.crt # root CA or (root+intermediate CA bundle) that signed client cert.
#ssl_cert_file =
#ssl_key_file =
......
hostssl all all all md5 clientcert=verify-ca
...由于此错误,启动数据库服务器失败。
...
FATAL: could not load server certificate file "server.crt": No such file or directory
...为什么失败了,我不需要server.crt和server.key,因为服务器应该使用ca.crt而不是客户机来进行客户端验证?
阅读postgres文档对我没有帮助。提前谢谢。
发布于 2022-10-04 13:23:29
您还必须在数据目录中提供服务器证书(默认情况下是server.crt)和相应的私钥(具有限制性权限的默认server.key ),否则就不能从SSL支持开始。
若要验证客户端证书,应在md5 clientcert=verify-full中使用pg_hba.conf。如果您不需要额外的密码,并且客户端证书足以进行身份验证,那么只需使用证书身份验证:
hostssl all all all certhttps://dba.stackexchange.com/questions/317807
复制相似问题