You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python LDAP3连接AD遇证书密钥过弱及凭证错误求助

问题解答

1. 确认"EE certificate key too weak"错误原因

这个错误确实是因为AD服务器的证书使用了1024位RSA密钥。当前OpenSSL默认安全级别(SECLEVEL=2)已禁止使用1024位及以下的RSA密钥,所以LDAPS连接时会触发证书验证失败。

你可以用OpenSSL命令直接验证证书密钥长度:

openssl s_client -connect your-ad-server:636

在输出中找到Public-Key:字段,如果显示(1024 bit),即可确认是密钥过弱的问题。

2. LDAP3使用SSLContext的示例代码

直接创建ssl.SSLContext实例,自定义配置后传给ldap3的Tls对象即可,以下是完整可运行示例:

import ssl
from ldap3 import Server, Connection, Tls

# 创建自定义SSLContext
ssl_context = ssl.create_default_context()
# 降低安全级别以兼容弱密钥(仅测试场景使用,生产环境不推荐)
ssl_context.set_ciphers('ALL:@SECLEVEL=1')
# 可选:极端情况跳过证书验证(风险极高,仅临时测试用)
# ssl_context.check_hostname = False
# ssl_context.verify_mode = ssl.CERT_NONE

# 初始化Tls对象,传入自定义SSLContext
tls_config = Tls(ssl_context=ssl_context)

# 连接AD服务器
server = Server('your-ad-server', use_ssl=True, tls=tls_config)
with Connection(server, user='DOMAIN\\username', password='your-password', auto_bind=True) as conn:
    print('连接成功')
    # 示例:查询指定用户信息
    conn.search('DC=your-domain,DC=com', '(sAMAccountName=target-user)', attributes=['cn', 'mail'])
    print(conn.entries)

3. 修改ciphers后出现"LDAPInvalidCredentialsResult"的解决方法

添加ciphers='ALL:@SECLEVEL=1'解决了证书验证问题,但无效凭证的问题和该配置无关,大概率是以下原因:

  • 用户名格式错误:AD要求用户名必须是DOMAIN\username或user@domain.com格式,不能只传单纯的用户名。
  • 密码错误或编码问题:如果密码包含特殊字符,确保代码中使用的是UTF-8编码(Python3默认支持,但若从外部文件读取密码需确认编码一致)。
  • SSLContext验证模式冲突:如果之前设置过verify_mode=CERT_NONE,部分AD服务器会拒绝无验证的连接,建议先恢复默认验证模式,再确认证书兼容性。

调整后的测试代码(重点检查用户名格式):

import ssl
from ldap3 import Server, Connection, Tls

ssl_context = ssl.create_default_context()
ssl_context.set_ciphers('ALL:@SECLEVEL=1')
tls_config = Tls(ssl_context=ssl_context)

server = Server('your-ad-server', use_ssl=True, port=636, tls=tls_config)
# 注意用户名格式:DOMAIN\username 或 user@domain.com
conn = Connection(server, user='YOUR-DOMAIN\\test-user', password='correct-password')
try:
    conn.bind()
    print('绑定成功')
except Exception as e:
    print(f'绑定失败:{e}')

如果仍报错,建议先用ldp.exe等工具测试AD的LDAPS连接和凭证有效性,排除AD服务器本身的配置问题。

内容的提问来源于stack exchange,提问作者Arkham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:52:37