【问题标题】:How to change my ssl ciphers in ldaps request?如何在 ldaps 请求中更改我的 ssl 密码?
【发布时间】:2018-07-17 10:04:46
【问题描述】:

亲爱的~, 我的环境是: 操作系统: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 失败时,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') 不适合我。现在我不知道在哪里设置这些密码值。或者第三方依赖什么我可以升级以支持更多密码。

谢谢~~~

【问题讨论】:

    标签: python ssl ubuntu-12.10


    【解决方案1】:

    像我今天一样,你可能处于这里解释的情况: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)

    【讨论】:

      【解决方案2】:

      你刚刚碰到了 python 2/3 的墙。

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

      一个例子显示在here

      【讨论】:

      • 谢谢ZF007~但是u12和u16都安装了python2.7,我会尝试在u12上安装3.x但我不确定它是否可以工作。
      • 似乎 3.x 在您的 u16 上设置为默认值。尝试在命令行询问。如何问python的几个例子是here
      • 如果这个答案和 cmets 对您有所帮助,那么请检查 here 未来在 SO 上下一步该做什么 ;-)
      • 谢谢,我确认u12和u16都在使用python2.7(u16安装了python3但这里没有使用)
      • 很好看问题解决了。由于您是 SO 新手,请查看 this 页“当有人回答我的问题时我应该怎么做?”。尽情享受吧 ;-)
      猜你喜欢
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      相关资源
      最近更新 更多