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

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

本文介绍在使用 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 相关产品和应用

全部下载

专题列表