【发布时间】:2025-11-22 10:55:01
【问题描述】:
我们能否为相同的客户端 IP 地址同时为 PostgreSQL 配置基本身份验证和证书身份验证。 我认为不是,因为它们是两种不同的身份验证机制,不能同时共存......因为如果我们配置证书身份验证,那么它不能使用用户名密码进行身份验证,而只能使用证书进行身份验证。
请帮忙。
【问题讨论】:
标签: postgresql postgresql-10 postgresql-11 postgresql-12
我们能否为相同的客户端 IP 地址同时为 PostgreSQL 配置基本身份验证和证书身份验证。 我认为不是,因为它们是两种不同的身份验证机制,不能同时共存......因为如果我们配置证书身份验证,那么它不能使用用户名密码进行身份验证,而只能使用证书进行身份验证。
请帮忙。
【问题讨论】:
标签: postgresql postgresql-10 postgresql-11 postgresql-12
是的,这是正确的 - 对于给定的连接,您只能使用一种身份验证方法。
【讨论】:
是的,您可以将clientcert 与任何身份验证方法一起指定。所以md5 clientcert=verify-full 需要证书和密码。
verify-full 仅在 v12 中引入。在此之前,您只能检查证书是否有效签名,而不能检查证书上的 CN 是否与声明的用户名匹配。
【讨论】:
我自己试过。 在 pg_hba.conf 文件中,我们可以为一组 IP 地址设置 MD5 验证,为另一个 IP 地址范围设置证书。 所以 1 个 Postgres 服务器可以为 2 个不同的 IP 地址解决 2 个不同的身份验证
【讨论】: