Mad*_*ker 9 ubuntu certificate ldap ssl-certificate ubuntu-12.04
我正在使用 OpenLDAP 服务器使用 Ubuntu 12.04。我已按照Ubuntu 帮助页面上的说明进行操作,并且可以在没有安全性的情况下愉快地连接。为了测试我的连接,我使用ldapsearch
的命令如下:
ldapsearch -xv -H ldap://ldap.[my host].local -b dc=[my domain],dc=local -d8 -ZZ
Run Code Online (Sandbox Code Playgroud)
我也用过:
ldapsearch -xv -H ldaps://ldap.[my host].local -b dc=[my domain],dc=local -d8
Run Code Online (Sandbox Code Playgroud)
据我所知,我已经正确设置了我的证书,但无论我为什么尝试,我似乎都无法ldapsearch
接受我的自签名证书。
到目前为止,我已经尝试过:
/etc/ldap/ldap.conf
文件看起来像:Run Code Online (Sandbox Code Playgroud)BASE dc=[my domain],dc=local URI ldaps://ldap.[my host].local TLS_CACERT /etc/ssl/certs/cacert.crt TLS_REQCERT allow
/etc/ldap.conf
文件看起来像:Run Code Online (Sandbox Code Playgroud)base dc=[my domain],dc=local uri ldapi:///ldap.[my host].local uri ldaps:///ldap.[my host].local ldap_version 3 ssl start_tls ssl on tls_checkpeer no TLS_REQCERT allow
更新我/etc/default/slapd
的包括:
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
几个小时的谷歌搜索,其中大部分导致添加 TLS_REQCERT allow
我看到的确切错误是:
ldap_initialize( ldap://ldap.[my host].local )
request done: ld 0x20038710 msgid 1
TLS certificate verification: Error, self signed certificate in certificate chain
TLS: can't connect.
ldap_start_tls: Connect error (-11)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Run Code Online (Sandbox Code Playgroud)
几个小时后,我希望其他人已经看到了这个问题,和/或知道如何解决它。如果我应该添加更多信息,或者您需要更多数据,请告诉我。
ken*_*orb 13
将LDAPTLS_REQCERT
变量设置never
为忽略服务器上可能已过期或无效的证书,即:
LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"
Run Code Online (Sandbox Code Playgroud)
或者检查服务器是否有正确的证书。
小智 1
问题在于 Ubuntu 12.04 附带的 GnuTLS 版本使用了有缺陷的加密后端。
GnuTLS 原本应该从使用 gcrypt 作为加密后端切换到 nettle,但存在许可问题。具体来说,某些 GPL 许可证允许与较新或较旧版本的 GPL 链接,而有些则不允许。
您可以从配置了荨麻的源重建 GnuTLS,也可以按照 Howard Chu 建议的方式破解 gcrypt。有关前者的说明位于此错误报告中。
https://bugs.launchpad.net/bugs/926350