我已经设置了一个 LDAP 服务器,我想从客户端计算机连接到该服务器。Ubuntu 是服务器和客户端的操作系统,TLS 处于活动状态,并且由于这是一个实践项目,我的所有证书都是自签名的。
为了让客户端接受服务器的证书,我已将我的 CA 的证书添加到 /usr/local/share/ca-certificates 文件夹并运行update-ca-certificates
,将其添加到受信任的列表中。(随后这教程)。我知道证书是正确的并且可以正常工作,因为当我在运行时直接指定证书时ldapsearch -xLLLH ldaps://example.com:636 -D "cn=admin,dc=example,dc=com" -b "dc=example,dc=com" -W -o tls_cacert=/etc/ssl/certs/CA.pem
,它可以按预期工作。
但是,当我尝试运行ldapsearch -xLLLH ldaps://example.com:636 -D "cn=admin,dc=example,dc=com" -b "dc=example,dc=com" -W
(没有证书路径)时,我收到“TLS:对等证书不受信任或已撤销(0x42)”错误。我已将这些设置添加到 /etc/ldap.conf:
tls_cacertfile /etc/ssl/certs/CA.pem
tls_cacertdir /etc/ssl/certs
但这似乎什么也没改变。查看命令的 strace,它确实没有尝试打开证书一次。覆盖环境变量 LDAPTLS_CACERT 并将其设置为证书的路径可以暂时修复它,但每次重新启动时都会重置。我还能做什么?