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

如何在Python的requests或urllib包中全局禁用SSL验证?

全局禁用requests SSL验证的方法

方法1:修改requests全局默认配置

如果第三方包没有显式指定verify=True,可直接修改requests的默认参数,将verify设为False:

import requests
# 禁用不安全请求的警告(可选,避免控制台输出大量冗余信息)
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
# 设置全局默认verify为False
requests.defaults['verify'] = False

注意:若第三方包调用requests时显式传入了verify=True,该方法会被覆盖,无法生效。

方法2:猴子补丁强制覆盖verify参数

如果第三方包显式指定了verify=True,可通过猴子补丁修改requests核心请求方法,强制将verify设为False,覆盖所有调用:

import requests
from requests.api import request as original_request
from requests.sessions import Session as OriginalSession

# 禁用不安全请求警告
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)

# 补丁requests.api.request方法(直接调用requests.get/post等时生效)
def patched_api_request(method, url, **kwargs):
    kwargs['verify'] = False
    return original_request(method, url, **kwargs)
requests.api.request = patched_api_request

# 补丁requests.Session.request方法(使用Session对象时生效)
class PatchedSession(OriginalSession):
    def request(self, method, url, **kwargs):
        kwargs['verify'] = False
        return super().request(method, url, **kwargs)
requests.Session = PatchedSession

该方法无论第三方包是否显式指定verify参数,都会强制禁用SSL验证,适用性最广。

方法3:通过环境变量配置

可通过环境变量控制requests底层依赖urllib3的行为,同时抑制警告:

终端临时设置(运行脚本前执行)

# 允许urllib3使用不安全的HTTPS连接
export URLLIB3_INSECURE_TRANSPORT=1
# 抑制Python的不安全请求警告
export PYTHONWARNINGS="ignore:Unverified HTTPS request"

代码内设置环境变量

若无法在终端设置,可在代码开头配置:

import os
# 先设置环境变量,再导入requests确保生效
os.environ['URLLIB3_INSECURE_TRANSPORT'] = '1'
os.environ['PYTHONWARNINGS'] = 'ignore:Unverified HTTPS request'

import requests

注意:这种方法本质是允许urllib3跳过证书验证,requests会继承该行为,但如果第三方包显式设置verify=True,仍可能触发验证错误,此时需改用猴子补丁方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:35:34