Python requests 处理 HTTPS SSL 证书错误的两种方法

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13| 7人浏览过
原创

本文介绍在使用 Python requests 库请求 HTTPS 网站时遇到的 SSL 证书错误(SSLerror)的两种常见解决方案。第一种方法是通过将 verify 参数设置为 False 来关闭 SSL 证书验证,适用于开发测试或受控环境;第二种方法是将本地证书文件路径赋值给 verify 参数,以指定具体的 CA 证书进行验证。文章提供了基于 requests.get 和 requests.post 的代码示例,帮助开发者快速解决证书验证问题。

Python requests SSL 证书错误概述

在使用 Python 的 requests 库发起 HTTPS 请求时,偶尔会遭遇证书验证失败的问题,即常见的 SSLerror。面对此类报错,无需惊慌,通常有明确的解决路径。

由于难以直接构造一个必然触发 SSL 证书错误的目标网站,此处通过模拟请求一个 HTTPS 地址并故意触发 SSLerror 来演示处理流程,随后给出相应的解决方法。

方法一:关闭 SSL 证书验证

解决该问题的一种直接方式是关闭 SSL 证书的验证检查。


import requests
'''
  :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
  :param verify: (optional) Either a boolean, in which case it controls whether we verify
      the server's TLS certificate, or a string, in which case it must be a path
      to a CA bundle to use. Defaults to ``True``.
      
'''
r = requests.get('https://kyfw.12306.cn',verify=False)

print(r.text)

具体操作是在请求函数中修改 verify 参数的值。由于 requests 库中的 get 和 post 方法底层均调用 request() 函数,因此该参数对这两种请求方式均适用。只需将 verify 设置为 True(默认)或 False 即可控制验证行为。

方法二:指定证书文件路径

若关闭验证能解决问题,则可直接采用此方案;若无效,可尝试以下另一种方法。


import requests
'''
  :param verify: (optional) Either a boolean, in which case it controls whether we verify
      the server's TLS certificate, or a string, in which case it must be a path
      to a CA bundle to use. Defaults to ``True``.
      
'''
## 证书路径
cert = '../cert/test.pem'

r = requests.get('https://kyfw.12306.cn',verify=cert)
print(r.text)

另一种有效的方法是将本地证书文件的路径直接赋值给 verify 参数,随后发起请求即可完成验证。

以上即为解决 Python requests SSL 证书问题的主要内容,希望能为读者提供有效帮助,欢迎继续支持本站获取更多技术资讯。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。