ssl 使用ldap3连接到LDAP服务器时出现“无效服务器地址”

7vux5j2d  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(202)

我有以下连接到LDAP服务器(负载平衡器后面的多个LDAP服务器)的python代码。

ldap_server = Server(host=LDAP_server_IP, port=636, use_ssl=True, get_info=ALL)

它不断失败,并显示以下错误消息:
错误:(“('套接字ssl Package 错误:[SSL:SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3警报握手失败(_ssl.c:997 "',)",)无效的服务器地址错误:无效的服务器地址
根据这个post,似乎一个解决方案是使用服务器的IP地址而不是DNS名称。
如果服务器证书由于某种原因无效并且是另一个名称,这将是有意义的。
不幸的是,它并没有解决我的问题。
我还尝试关闭姓名检查,但没有成功:

context = ssl.create_default_context()
context.check_hostname = False

ldap_server = Server(
    host=LDAP_server_IP, port=636, use_ssl=True, get_info=ALL
)

因此,我的问题其实是双重的:我真的关闭了证书名称验证与我的代码?是否有任何其他解释这个错误?

plicqrtu

plicqrtu1#

我终于得到了它的工作:

from ldap3 import ALL, Connection, Server, Tls

tls = Tls(ciphers="ALL", version=ssl.PROTOCOL_SSLv23, validate=ssl.CERT_NONE)

ldap_server = Server(
    host=settings.LDAP_SERVER, port=636, use_ssl=True, tls=tls, get_info=ALL
)

ldap_connection = Connection(
    ldap_server, authentication="ANONYMOUS", version=3, auto_bind=True
)

相关问题