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

Python 3.13是否有意忽略SSL_CERT_FILE环境变量?

Python 3.13中SSL_CERT_FILE环境变量不再被urllib默认读取的原因

这是有意的行为变更,并非意外情况。

背景与变更原因

在Python 3.12及更早版本中,urllib.request.urlopen()使用的默认SSL上下文会自动读取SSL_CERT_FILE环境变量,将其指定的证书作为信任根。但Python 3.13对SSL默认上下文的初始化逻辑做了调整:

  • 为了强化默认安全配置的可控性,减少环境变量带来的隐式行为,官方移除了默认上下文自动加载SSL_CERT_FILE的逻辑。
  • 现在需要显式创建SSLContext对象并配置验证证书位置,才能让自定义证书生效。

你的解决方案是正确的

你修改后的代码通过手动获取SSL_CERT_FILE环境变量值,创建SSLContext并调用load_verify_locations()加载证书,再将上下文传给urlopen(),这是Python 3.13及以后版本中使用自定义证书的标准方式。

内容的提问来源于stack exchange,提问作者M. Hearne

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:15:12