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

OS X系统Python 3.6安装certifi后仍出现SSL证书失败问题

解决OS X下Python 3.6 SSL证书失败(certifi安装后无效)的方案

我之前在OS X上跑Python 3.6脚本时也踩过这个SSL证书的坑,装了certifi还是报错,折腾了一阵才搞定,给你几个实用的排查和解决步骤:

1. 确保certifi正确关联到Python 3.6

OS X经常会有多个Python版本共存,很容易把certifi装到其他版本里去。先验证下:

  • 打开终端运行:python3.6 -m pip show certifi
    输出里的Location路径应该指向/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages,如果不是,说明装错版本了,重新用python3.6 -m pip install --upgrade certifi安装。

2. 强制脚本使用certifi证书

有时候Python的默认SSL上下文不会自动加载certifi的证书,你可以在代码里手动指定:

import certifi
import ssl
import urllib3

# 创建使用certifi证书的SSL上下文
ssl_ctx = ssl.create_default_context(cafile=certifi.where())
# 用这个上下文初始化连接池
http = urllib3.PoolManager(ssl_context=ssl_ctx)

# 之后用http.request发起请求,比如:
response = http.request('GET', 'https://你的目标网址')

如果用的是requests库,也可以手动指定verify参数:

import certifi
import requests

response = requests.get('https://你的目标网址', verify=certifi.where())

3. 检查OS X系统证书状态

系统根证书损坏或过期也会导致这个问题:

  • 打开「钥匙串访问」应用,在「系统」分类下查看根证书,确认没有红色叉号的过期证书。
  • 尝试重置系统证书信任设置:终端运行sudo security set-trust-settings-global -d,输入密码后重启终端再运行脚本。

4. 验证Python的SSL依赖版本

Python 3.6的SSL模块依赖OpenSSL,版本太旧也会出问题:

  • 终端运行:python3.6 -c "import ssl; print(ssl.OPENSSL_VERSION)"
    如果输出的OpenSSL版本低于1.0.2,建议用Homebrew安装最新版OpenSSL,然后重新编译Python 3.6(这个步骤稍复杂,优先试前面的方法)。

附你提供的报错信息

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:29:09