Dav*_* R. 18 ldap edirectory ssl-certificate
尝试与我的 Novel eDirectory 8.8 服务器建立 ldaps 连接时,有时我必须放入TLS_REQCERT never
客户端服务器 ldap.conf 文件。显然,这是一个坏主意。
我运行的命令与实际工作的凭据类似...
ldapsearch -x -H ldaps://ldapserver -b 'ou=active,ou=people,dc=example,dc=org' -D 'cn=admin,dc=example,dc=org' -W "cn=username"
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 13.10 上,它运行良好。
在 SLES 上它工作正常。
在 CentOS 6.5 上,它返回:
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Run Code Online (Sandbox Code Playgroud)
现在,我导入的证书是从 DigiCert 购买的通配符证书。我的同事发现一些报告表明某些系统存在通配符问题。
那么,通配符证书是罪魁祸首吗?如果是这样,我该如何解决?
如果它不是通配符证书,那么它是什么?
按照 Andrew Schulman 的建议,我添加-d1
到我的 ldapsearch 命令中。这是我最终的结果:
ldap_url_parse_ext(ldaps://ldap.example.org)
ldap_create
ldap_url_parse_ext(ldaps://ldap.example.org:636/??base)
Enter LDAP Password:
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.example.org:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.225.0.24:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: certdb config: configDir='/etc/openldap' tokenDescription='ldap(0)' certPrefix='cacerts' keyPrefix='cacerts' flags=readOnly
TLS: cannot open certdb '/etc/openldap', error -8018:Unknown PKCS #11 error.
TLS: could not get info about the CA certificate directory /etc/openldap/cacerts - error -5950:File not found.
TLS: certificate [CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US] is not valid - error -8172:Peer's certificate issuer has been marked as not trusted by the user..
TLS: error: connect - force handshake failure: errno 2 - moznss error -8172
TLS: can't connect: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Run Code Online (Sandbox Code Playgroud)
这么说来,CentOS 不信任 DigiCert?或者 CentOS 没有受信任的发行者列表?
And*_*man 17
如果无法验证 TLS 证书,ldapsearch 将显示“无法联系 LDAP 服务器”。添加-d1
到您的 ldapsearch 命令,并检查以“TLS:”开头的输出行,以获取有关 TLS 连接是否失败以及原因的更多信息。
Ric*_*man 10
ldapsearch 正在 /etc/openldap/cacerts 中查找其受信任 CA 证书的存储,但显然没有设置,因此它拒绝该证书,因为它无法为其构建信任链。如果 ldapsearch 使用 OpenSSL,它需要一个“hashdir”格式集合,例如由 Red Hat“authconfig”程序生成的,或者一个带有可信证书平面列表的单个文件。此处对“moznss”的引用表明此 ldapsearch 是针对 Mozilla NSS 构建的,在这种情况下,您需要使用“certutil”来制作证书数据库(或者更好,将其指向系统 NSS 证书库,如果有的话) .
在它工作的系统上,ldapsearch 必须有一个有效的证书存储,也许是因为那些 OpenLDAP 包是针对 OpenSSL 构建的(或者那里可能有一个可用的 NSS 样式存储)。
Jua*_*cia 10
解决方案取决于您的安装:
如果您使用的是非有效的证书,您可以强制接受它配置/etc/openldap/ldap.conf
有
TLS_REQCERT allow
Run Code Online (Sandbox Code Playgroud)
或者
TLS_REQCERT never
Run Code Online (Sandbox Code Playgroud)如果您使用的是有效证书,则您的 ldap 安装可能不知道可信 CA 证书的存储位置(可能取决于您的 OpenSSL 安装)。然后,你可以尝试将其设置的位置和力检查配置/etc/openldap/ldap.conf
与
TLS_CACERT /etc/openldap/cacert
TLS_REQCERT demand
Run Code Online (Sandbox Code Playgroud)
/etc/openldap/cacert
可以是这个或位于任何路径中。它必须包含您的 CA 的证书链。它可以是单个文件,其中包含可信证书的平面列表。
注意路径取决于 ldap 提供程序。这可能是/etc/ldap
或/etc/openldap
左右。
归档时间: |
|
查看次数: |
89898 次 |
最近记录: |