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

代码在urllib3 1.6版本正常运行,升级至2.0.4版本后报错如何修复?

问题

我有一段用于登录服务器的代码,在urllib3 1.6旧版本中可以正常运行,但在最新的2.0.4版本中无法正常工作。以下是处理SSL的代码:

import requests
import urllib3

requests.packages.urllib3.disable_warnings()
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
try:
    requests.packages.urllib3.contrib.pyopenssl.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
except AttributeError:
    # no pyopenssl support used / needed / available
    pass

运行时出现的错误信息:

Traceback (most recent call last):
  File "c:\Users\xxx\xxx\Desktop\request\rqst_01.py", line 38, in <module>
    requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'urllib3.util.ssl_' has no attribute 'DEFAULT_CIPHERS'
解决方案

urllib3 2.0+ 彻底移除了DEFAULT_CIPHERS全局变量,无法再通过修改该属性调整SSL密码套件,需改用以下两种方式适配:

方式1:自定义SSL上下文(生产环境推荐)

创建自定义SSL上下文并指定密码套件,挂载到requests的Session中使用:

import requests
from urllib3.util.ssl_ import create_urllib3_context

# 禁用SSL警告
requests.packages.urllib3.disable_warnings()

# 定义目标密码套件
TARGET_CIPHERS = 'DEFAULT:HIGH:!DH:!aNULL'

# 创建urllib3上下文并设置密码套件
ssl_ctx = create_urllib3_context(ciphers=TARGET_CIPHERS)

# 配置requests Session并挂载自定义适配器
session = requests.Session()
adapter = requests.adapters.HTTPAdapter(ssl_context=ssl_ctx)
session.mount('https://', adapter)

# 使用session发起请求
response = session.get('https://你的服务器地址')
print(response.status_code)

注:urllib3 2.x已默认弃用pyopenssl集成,无需再处理pyopenssl相关的密码套件配置。

方式2:环境变量临时配置(仅测试用)

通过环境变量指定密码套件,适合临时测试场景,不建议生产环境使用:

# Windows系统
set URLLIB3_CIPHERS=DEFAULT:HIGH:!DH:!aNULL

# Linux/macOS系统
export URLLIB3_CIPHERS=DEFAULT:HIGH:!DH:!aNULL

设置完成后直接运行原有requests代码即可生效。

额外注意

urllib3 2.x默认采用系统标准SSL配置,安全性更高,仅当你的服务器明确需要旧版密码套件时才建议修改;若无需特定套件,可直接移除原代码中修改密码套件的逻辑,仅保留禁用警告的部分即可正常运行。

内容的提问来源于stack exchange,提问作者J.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:15:35