我有一个来自 Osixia 的 OpenLDAP Docker 实例并尝试使用 TLS 从客户端安全地查询它。该查询使用 $ ldapwhoami -H ldap://localhost -x
无需加密即可工作。并且在使用 -ZZ
时不起作用开始 TLS 操作的标志 $ ldapwhoami -H ldap://localhost -x -ZZ
- 它返回 ldap_start_tls: Can't contact LDAP server (-1)
.我怎样才能使这项工作?以下是我采取的所有步骤:
$ docker run -p 389:389 -p 636:636 --name ldap-service --hostname ldap-service \
--env LDAP_ADMIN_PASSWORD="password" --env LDAP_BASE_DN="dc=example,dc=org" --detach osixia/openldap:1.4.0
anonymous
$ ldapwhoami -H ldap://localhost -x
anonymous
/container/service/slapd/assets/certs/ca.crt
ca.crt
进入客户文件夹/usr/local/share/ca-certificates/ca.crt
,然后运行 sudo update-ca-certificates
添加它。通过检查 CA 是否在 /etc/ssl/certs/ca-certificates.crt
中来确认添加成功/etc/ldap/ldap.conf
中我添加了 TLS_CACERT /etc/ssl/certs/ca-certificates.crt
行-ZZ
测试来自 CLIENT 的 TLS 连接开始 TLS 操作的标志:$ ldapwhoami -H ldap://localhost -x -ZZ
ldap_start_tls: Can't contact LDAP server (-1)
additional info: The TLS connection was non-properly terminated.
来自 LDAP docker 内部的更多日志:5ff42195 conn=1079 fd=12 ACCEPT from IP=172.17.0.1:39420 (IP=0.0.0.0:636)
TLS: can't accept: No certificate was found..
5ff42195 conn=1079 fd=12 closed (TLS negotiation failure)
ldaps://
$ ldapwhoami -H ldaps://localhost -x
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
我尝试过的事情:/etc/ldap/ldap.conf
中的设置包括以下项目,但无济于事。 TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_REQCERT ALLOW
PORT 636
HOST localhost // i also tried 'ldap-service'
最佳答案
我找到了解决方案:
添加 --env LDAP_TLS_VERIFY_CLIENT=try
到docker run
命令。 Source
关于docker - 通过 TLS 连接到 OPENLDAP : Certificate not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65576605/