优先更新 Package Control 至最新版;macOS 用户需检查钥匙串中 DigiCert 或 ISRG Root X1 根证书是否设为“始终信任”;最后可手动指定 ssl_certificate_file 路径。

Sublime Text 报错 “SSL: CERTIFICATE_VERIFY_FAILED” 怎么办
这是 Sublime Text 3(尤其是旧版或 macOS / Linux 上)安装插件时最典型的证书验证失败错误,根本原因是 Python 内置的 SSL 模块无法校验 Package Control 连接的 https://packagecontrol.io 服务器证书。不是网络问题,也不是插件源挂了,而是本地 OpenSSL 信任链缺失或过期。
- 常见报错全文类似:
error: Package Control: Error downloading package. SSL: CERTIFICATE_VERIFY_FAILED - Windows 用户较少遇到,因 Sublime 自带 Python 常附带较全的 CA 证书;macOS 和某些 Linux 发行版(如 Ubuntu 22.04+)更容易触发
- 别急着关 SSL 验证——那是治标不治本,还可能被中间人攻击
优先尝试:更新 Package Control 到最新版
旧版 Package Control(pc-2.x)硬编码了过期的证书校验逻辑,新版(pc-4.x)已改用系统级证书或自带更新机制。手动更新是最安全、最推荐的第一步。
- 打开 Sublime Text →
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)→ 输入Package Control: Upgrade Package Control并执行 - 如果命令不可见,说明当前未安装或损坏,需手动重装:
View → Show Console,粘贴并回车运行官方安装脚本(注意核对官网https://packagecontrol.io/installation最新代码) - 重启 Sublime Text 后再试安装插件,多数情况就此解决
macOS 用户:检查系统钥匙串是否禁用了根证书
macOS 12+(Monterey)起,系统默认将部分老根证书标记为“永不信任”,而 Sublime 的 Python 会继承系统策略。即使浏览器能打开 packagecontrol.io,Sublime 仍可能拒绝连接。
- 打开
钥匙串访问→ 左侧选中系统根证书→ 搜索DigiCert或ISRG Root X1 - 双击对应证书 → 展开
信任→ 将使用此证书时:改为始终信任 - 关闭窗口后输入密码确认更改 → 重启 Sublime Text
- 若仍失败,可临时在终端运行
security trust-settings-export查看当前策略,但不建议全局降级信任级别
终极方案:强制指定证书路径(慎用)
仅当上述方法全无效,且你明确知道风险时才用。本质是让 Sublime 的 Python 绕过系统证书库,改用一个你提供的 PEM 文件(比如从 curl 或 Mozilla 复制来的根证书包)。
- 下载最新 Mozilla CA 证书 bundle:
curl -o ~/cert.pem https://curl.se/ca/cacert.pem - 打开 Sublime Text 控制台(
View → Show Console),执行:import ssl; ssl._create_default_https_context = ssl._create_unverified_context
—— 这只是临时绕过,不推荐 - 真正生效的做法是修改 Package Control 设置:菜单
Preferences → Package Settings → Package Control → Settings,在右侧面板添加:"http_client": "urllib", "ssl_certificate_file": "/Users/yourname/cert.pem"
(路径替换成你的真实路径) - 保存后重启,插件安装即可恢复
证书错误背后往往是环境碎片化问题:Sublime 自带 Python 版本、系统 OpenSSL、CA 证书存储位置、甚至虚拟环境干扰都可能叠加影响。修一个点容易,但真正稳定得理清链条——比如 macOS 用户常忽略钥匙串策略变更,Linux 用户常误删 /etc/ssl/certs 下的软链接。动手前先 python -c "import ssl; print(ssl.get_default_verify_paths())" 看一眼它到底在查哪。










