OpenLDAP:TLS错误-8179:无法识别对等方的证书颁发者

时间:2014-07-30 11:55:59

标签: ssl openldap

我不熟悉证书和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

3 个答案:

答案 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是一个更完整的答案。