我正在尝试使用 Python 设置 ldap。当我跑步时,./manage.py syncldap
我得到:
SERVER_DOWN: {'info': 'TLS: hostname does not match CN in peer certificate', 'desc': "Can't contact LDAP server"}
在本地机器上使用相同代码库的其他人似乎没有任何问题。有什么想法吗?
从服务器证书的主题检查 CN
openssl x509 -noout -text -in imsva_cert.pem | grep Subject
Subject: C=en, ST=xx, O=yy, OU=zz, CN=test.com
错误中的“主机名”是说你的命令中的主机名访问LDAP服务器,所以请使用主机test.com,例如
ldapsearch -H "ldaps://test.com:636" ...
另外不要忘记在您的 DNS 服务器中添加 test.com 以确保 ldapsearch 可以获取主机 test.com 的 A 记录。在 /etc/hosts 中指定信息是一种简单的方法。
你的其他人,在他们的本地机器上使用相同的代码库,他们正在与同一个 LDAP 服务器通信吗?用于通过 SSL/TLS 启用 LDAP 的 SSL 证书将嵌入一个名称。(不可编辑,您需要使用新 CN 重新颁发新证书)
消息说服务器的主机名与证书中的主机名不同(这就是通配符证书如此有用的原因。不需要为每个盒子都提供新证书,只需使用通配符并保持域相同)。
我会在服务器端检查证书,无论它保存在什么密钥库中,然后查看主机名以查看差异..