postgresql - 使用 SSL 自签名证书的 PostgreSQL LDAP 身份验证
问题描述
我正在尝试为在 RHEL 7.5 上运行的 PostgreSQL 12 实例上的用户设置 LDAP 身份验证。
我做了什么:
- 放入
/etc/pki/ca-trust/source/anchors
所有需要的证书,从 LDAP 服务器之一到内部根证书颁发机构(这是自签名证书) - 可能只需要根证书(更新:只有根 ca 证书就足够了) - 运行
update-ca-certs extract
命令以将更改提交到系统 openssl s_client -showcerts -connect myldapshost:636
用最后返回的 (ldaps)验证了信任链的正确性Verify return code: 0 (ok)
pg_hba.conf
为我要针对 LDAP 进行身份验证的用户配置条目:host all myuser samenet ldap ldapscheme=ldaps ldaptls=0 ldapserver=myldapshost ldapport=636 ldapbasedn="mybasedn" ldapbinddn="<mybinddn>" ldapbindpasswd=secret
- 告诉服务器重新加载配置
pg_ctl reload
- 告诉服务器重新加载配置
当我尝试进行身份验证时,myuser
出现psql -h mypostgreshost mydb
此错误:
psql: error: could not connect to server: FATAL: LDAP authentication failed for user "myuser"
FATAL: LDAP authentication failed for user "myuser"
查看 PostgreSQL 日志,我看到:
LDAP diagnostics: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed (self signed certificate in certificate chain)
问题是:如何告诉 PostgreSQL 信任它找到的自签名证书?谢谢
解决方案
推荐阅读
- git - 不是一个一个地 git checkout 文件,而是 checkout 整个提交
- sql - SQL Server 不正确执行作业逻辑
- c++ - C++ setw 问题。输出不对齐,它移动了几个空间,为什么会这样?
- java - 如何使用 Java 9+ 从 JDK 模块中获取类的文件?
- postgresql - 为什么 PostgreSQL 认为范围类型中的 NULL 边界与无限边界不同?
- r - R传单ftp远程访问
- c++ - 获取线圆交点的面积
- java - OutOfBond 异常
- javascript - 使用 Turbolinks 时使用 Javascript 更改元素类失败
- c# - C# WPF 如何使 Canvas.SetTop 看起来像在移动