我不熟悉证书和openldap
。我尝试将其他人工作从较旧的操作系统移至CentOS-6
openldap-2.4.23
。在旧操作系统上,ldap连接没有问题。现在在CentOS-6
上,在执行简单绑定时出现以下错误:
TLS error -8179:Peer's Certificate issuer is not recognized
。
我的/etc/openldap/ldap.conf
只有一行:
TLS_CACERTDIR /etc/openldap/certs
我尝试评论该行并将以下内容放入文件中,但这并没有改变我收到的错误消息。
tls_reqcert allow
我还尝试在ldap.conf
中仅添加以下行,但这并没有改变错误。我根据此question中的信息尝试了此操作。
LDAPTLS_CACERT /etc/ssl/certs/ca-bundle.crt
我将文件复制到以下目录中:
/etc/pki/tls/certs/ca.crt
/etc/pki/tls/certs/server.crt
/etc/pki/tls/private/server.key
我别无选择,只能使用openldap-2.4.23
。知道导致此错误的原因或我可以采取哪些措施进行故障排除?
提前致谢。 SP
答案 0 :(得分:4)
根据http://www.zytrax.com/books/ldap/ch6/ldap-conf.html TLS_CACERT
应指向包含客户端将用于验证证书的CA cert
的文件。您需要确保您的服务器CA [签署服务器证书的CA]存在于TLS_CACERT
指向[在您的情况/etc/ssl/certs/ca-bundle.crt
中的文件中。
答案 1 :(得分:3)
我有同样的错误。在我的情况下,原因是,我的客户在/etc/ipa/ca.crt中有错误的证书。为了解决这个问题,我只是将/etc/ipa/ca.crt从KDC服务器复制到了客户端,错误消失了。
答案 2 :(得分:0)
根据环境的不同,OpenLDAP可能完全忽略为TLS_CACERTDIR
设置的值,因为显然GnuTLS不支持该类型的证书存储。
来自ldap.conf(5)
TLS_CACERTDIR <path>
Specifies the path of a directory that contains Certifi‐
cate Authority certificates in separate individual files.
The TLS_CACERT is always used before TLS_CACERTDIR. This
parameter is ignored with GnuTLS.
就我而言,我怀疑GnuTLS正在使用中,因此TLS_CACERTDIR
根本无效。使用TLS_CACERT
指向包含我的服务器签名CA证书的文件似乎已经完成了这一操作。
我认为https://serverfault.com/questions/437546/centos-openldap-cert-trust-issues是一个更完整的答案。