如何在ldaps请求中更改我的ssl密码?

时间:2018-02-07 07:39:16

标签: python ssl ubuntu-12.10

逗人〜, 我的环境是:   操作系统:Ubuntu 12.04.4 LTS   Python:Python 2.7.3 当使用ldap通过ssl连接到AD服务器时。我收到了这个错误 “收到了意外长度的TLS数据包” 我已经通过tcpdump得到了包并找到了 hello faild

Hello details

但是当我在相同的环境中使用perl脚本没问题,并且在Ubuntu16中运行的python脚本也成功连接(只有ubuntu12中的python不能正常工作) 成功连接后,hello请求将带来比Ubuntu12更多的密码。 Run well on Ubuntu16 faild时,AD服务器可以找到 error log

我的测试脚本是:

import ldap
TIMEOUT = 30
DEBUG_LEVEL = 8191
TRACE_LEVEL = 10
AD_HOST = "10.29.137.100"
USERNAME = "username"
PASSWORD = "password"

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW)
ldap.set_option(ldap.OPT_DEBUG_LEVEL, 8191)

ldapConn = ldap.initialize("ldaps://" + AD_HOST + ":636", 
trace_level=TRACE_LEVEL)
ldapConn.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
ldapConn.set_option(ldap.OPT_X_TLS_CIPHER_SUITE,'TLSv1:!NULL')
ldapConn.set_option(ldap.OPT_REFERRALS, 0)

ldapConn.set_option(ldap.OPT_NETWORK_TIMEOUT , TIMEOUT)
ldapConn.set_option(ldap.OPT_TIMEOUT , TIMEOUT)
ldapConn.simple_bind_s(USERNAME, PASSWORD)

我的问题是如何在python脚本中更改密码? 我发现     ldapConn.set_option(ldap.OPT_X_TLS_CIPHER_SUITE '的TLSv1:NULL') 不适合我。现在我不知道在哪里设置这些密码值。或者第三方所依赖的我可以升级以支持更多密码。

感谢~~~

2 个答案:

答案 0 :(得分:0)

你刚刚击中了蟒蛇2/3墙。

您的脚本是python3,您尝试在不向后兼容的python 2.7环境中运行。唯一的选择是在Ubuntu 12上安装python3并使用python3.X运行它。

显示了一个示例I took a screen shoot of my console.

答案 1 :(得分:0)

今天像我一样,您可能处于以下情况:https://github.com/python-ldap/python-ldap/issues/55(和此处https://github.com/pyldap/pyldap/issues/53):

几个(也许所有的set_option(OPT_X_TLS_ *,...)调用)需要最后一个set_option(ldap.OPT_X_TLS_NEWCTX,0)调用才能提交所有先前的set_option()调用。 没有OPT_X_TLS_NEWCTX,设置将被有效忽略。

=>您可以在初始化调用之前添加ldap.set_option(ldap.OPT_X_TLS_CIPHER_SUITE,'TLSv1:!NULL'),也可以在绑定之前添加ldapConn.set_option(ldap.OPT_X_TLS_NEWCTX, 0)