Ssl OpenLDAP:TLS错误-8179:Peer';s的证书颁发者未被识别

Ssl OpenLDAP:TLS错误-8179:Peer';s的证书颁发者未被识别,ssl,openldap,Ssl,Openldap,我不熟悉证书和openldap。我正在尝试使用openldap-2.4.23将其他人的工作从较旧的操作系统移植到CentOS-6。在旧操作系统上,ldap连接工作正常。现在,在CentOS-6上,我在执行简单绑定时遇到以下错误: TLS错误-8179:无法识别对等方的证书颁发者 我的/etc/openldap/ldap.conf只有一行: TLS_CACERTDIR /etc/openldap/certs 我试着注释这一行并将以下内容放入文件中,但这并没有改变我收到的错误消息 tls_re

我不熟悉证书和
openldap
。我正在尝试使用
openldap-2.4.23将其他人的工作从较旧的操作系统移植到
CentOS-6
。在旧操作系统上,ldap连接工作正常。现在,在
CentOS-6
上,我在执行简单绑定时遇到以下错误:

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

我的
/etc/openldap/ldap.conf
只有一行:

TLS_CACERTDIR   /etc/openldap/certs
我试着注释这一行并将以下内容放入文件中,但这并没有改变我收到的错误消息

tls_reqcert allow
我还尝试在
ldap.conf
中只放下面一行,但这并没有改变错误。我是根据这篇文章中的信息来尝试的

我将文件复制到以下目录中:

/etc/pki/tls/certs/ca.crt

/etc/pki/tls/certs/server.crt

/etc/pki/tls/private/server.key
我别无选择,只能使用
openldap-2.4.23
。知道是什么导致了这个错误,或者我能做些什么来排除故障吗

提前谢谢。
SP

根据
TLS\u CACERT
应指向包含
CA证书的文件,客户端将使用该文件验证证书。您需要确保您的服务器CA[签署服务器证书的CA]存在于
TLS\u CACERT
指向的文件中[在你的例子中,
/etc/ssl/certs/ca bundle.crt
我也有同样的错误。在我的例子中,原因是我的客户端在/etc/ipa/ca.crt中有错误的证书。要解决这个问题,我只需将/etc/ipa/ca.crt从KDC服务器复制到客户端,错误就消失了。

根据环境的不同,OpenLDAP可能完全忽略这个问题为
TLS\u CACERTDIR
设置的值,因为GnuTLS显然不支持这种类型的证书存储

ldap.conf(5)

TLS\u CACERTDIR
指定包含证书的目录的路径
将授权证书保存在单独的文件中。
TLS_CACERT始终在TLS_CACERTDIR之前使用。此
参数被GnuTLS忽略。
在我的例子中,我怀疑GnuTLS正在使用,因此
TLS\u CACERTDIR
根本不起任何作用。使用
TLS\u CACERT
指向包含我的服务器签名CA证书的文件似乎起到了作用

我认为这是一个更完整的答案

/etc/pki/tls/certs/ca.crt

/etc/pki/tls/certs/server.crt

/etc/pki/tls/private/server.key
   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.