gpt4 book ai didi

python - 无法从 python-ldap 连接到 Windows Server 2016 上的 ldaps

转载 作者:太空宇宙 更新时间:2023-11-03 14:38:27 26 4
gpt4 key购买 nike

我过去曾成功使用 python-ldap 通过 ldaps 连接到 Windows 2012 R2 服务器。我为此使用的程序如下:

python 代码:

import ldap
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
ldap.set_option(ldap.OPT_DEBUG_LEVEL, 255)
ip = '<redacted>'
url = "%s://%s:%d" % ('ldaps', ip, 636)
ld = ldap.initialize(url)
ld.protocol_version = 3
ld.set_option(ldap.OPT_REFERRALS, ldap.OPT_OFF)
user = '<redacted>'
passwd = '<redacted>'
ld.simple_bind_s('<redacted>\%s' % user, passwd)

在 Windows 服务器上,我使用“服务器管理器”添加了“AD CS”角色,并创建了根证书。我不关心验证证书,只是使用一些加密。创建根证书后,在服务器上启用了 LDAPS,此代码运行无误。

现在,我在 Windows Server 2016 上执行了完全相同的过程,但结果并不理想。我设法从同一个脚本中得到了一些错误。通常要么“收到了长度意外的 TLS 数据包。”或“推送功能出错。”。我已经搜索了几个小时,但一直找不到解决方案。有谁知道在 Windows 服务器上配置是否需要额外的步骤,或者我的脚本是否有问题?

我正在测试的客户端使用的是 python 2.7 和 ubuntu 14.04。 pip2.7 已经将python-ldap 库更新到最新版本。 Lere 是脚本运行失败的示例:

ldap_create
ldap_url_parse_ext(ldaps://<redacted>:636)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP <redacted>:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying <redacted>:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: can't connect: Error in the push function..
ldap_err2string
Traceback (most recent call last):
File "test_ldap.py", line 13, in <module>
ld.simple_bind_s('<redacted>\%s' % user, passwd)
File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 228, in simple_bind_s
msgid = self.simple_bind(who,cred,serverctrls,clientctrls)
File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 222, in simple_bind
return self._ldap_call(self._l.simple_bind,who,cred,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 108, in _ldap_call
result = func(*args,**kwargs)
ldap.SERVER_DOWN: {'info': 'Error in the push function.', 'errno': 104, 'desc': "Can't contact LDAP server"}

最佳答案

所以这似乎是我不明白的那些 Windows 事物之一。第二天上类后,上面的相同代码就开始工作了。似乎 Windows 服务器可能需要很多小时才能让 LDAPS 可以连接到。

关于python - 无法从 python-ldap 连接到 Windows Server 2016 上的 ldaps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45495820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com