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

Python3 Requests指定自签名叶子证书路径验证失败求助

问题:Python Requests验证自签名叶子服务器证书失败

我们团队尝试使用Python3 Requests模块,通过服务器证书进行显式服务器身份验证。服务器使用的是自签名叶子证书(无证书链,无中间CA或根CA),证书本身有效且未过期。

已尝试的解决方案

  • 参考相关技术方案,为requests.get方法的verify参数传入CA证书包路径:
cafile = 'cacert.pem' # 官方CA证书包
r = requests.get(url, verify=cafile)
  • 设置REQUESTS_CA_BUNDLE环境变量,同时尝试将证书添加到certifi或Requests提供的默认证书路径中:
import certifi
certifi.where()

或

import requests
requests.certs.where()

关键注意事项

  • 仅聚焦服务器端证书验证,不涉及mTLS相关内容
  • 已尝试PEM和DER编码的证书(预期应为PEM编码)
  • 该自签名证书无证书链
  • 运行环境:Python 3.8.10、Requests 2.28.2、certifi 2022.12.7,Windows 10搭配WSL2运行Ubuntu 20.04.3 LTS
  • 未找到针对单一自签名叶子证书的相关解决方案,这是本问题与其他同类帖子的核心差异点

报错信息

requests.exceptions.SSLError: HTTPSConnectionPool(host='', port=): Max retries exceeded with url: (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFIY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))

困惑与求助

看到有技术帖子评论提到使用PEM格式的根证书可成功验证,但我们使用自签名叶子证书却无法实现。虽清楚叶子证书按定义不属于CA证书包(无签名证书等扩展密钥用法),但认为仅需包含该自签名证书即可完成验证,现寻求相关建议或提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:10:07