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

使用Python Requests请求HTTPS时遇证书验证失败问题求助

解决requests中"certificate verify failed: unable to get local issuer certificate"错误

你的问题核心是只提供了服务器的叶子证书,缺少完整的证书信任链。用openssl s_client -connect sha256.badssl.com:443默认只输出服务器的叶子证书,而requests的verify参数需要完整的证书链(包含中间CA和根CA证书)才能完成信任验证,所以会报错。

解决步骤:

  • 重新获取完整证书链:执行带-showcerts参数的openssl命令,这样会输出所有参与验证的证书:
    openssl s_client -connect sha256.badssl.com:443 -showcerts
    
    把输出中所有从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----的完整证书块(包括中间CA和根CA)全部复制到certificate.pem文件中,保存后确保文件和代码在同一目录。
  • 验证证书文件:打开certificate.pem,确认里面包含多个证书块(通常是3个左右,对应叶子证书、中间CA、根CA),而不是只有一个。
  • 重新测试代码:保持原代码不变,再次运行,此时requests能通过完整的证书链完成信任验证。

额外提示:

如果不需要自定义证书,直接将verify设为默认的True,requests会自动使用系统内置的CA证书库完成验证,这种方式更稳定,适合大多数场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:42:34