SSL: CERTIFICATE_VERIFY_FAILED报错说明Sublime Text内置Python因cacert.pem过期(缺ISRG Root X1等新根证书)或系统时间误差超±5分钟,导致TLS握手失败;需手动替换证书、校准时间并确认channel配置生效。

SSL: CERTIFICATE_VERIFY_FAILED 报错说明什么
这不是网络不通,也不是插件源挂了,而是 Sublime Text 内置 Python 在 TLS 握手时拒绝了服务器证书——根本原因是它自带的 cacert.pem 文件太老,缺少 2024 年后广泛使用的根证书(比如 ISRG Root X1),同时系统时间误差超过 ±5 分钟也会触发同一错误。报错常表现为:SSL: CERTIFICATE_VERIFY_FAILED、控制台刷屏、Package Control: Install Package 命令消失、或点击后卡在“Loading…”。
手动替换 cacert.pem 是最稳解法
别信“关掉 ssl_verification 就能用”,那等于裸奔;也别指望 Sublime 自己更新证书——它压根不联网拉新证书包。必须你亲手换。
- 关闭 Sublime Text 全进程(Windows 右键任务栏图标选 Exit;macOS Dock 右键 Quit)
- 按
Preferences → Browse Packages…打开用户目录,进入Packages/Package Control/certifi/ - 如果该路径不存在,**手动创建**:
Packages/Package Control/→ 进入 → 新建文件夹certifi - 从可信源下载最新证书:访问 https://www.php.cn/link/04c165998a3bfee2c2b46a8d8840dacc,保存为
cacert.pem(注意后缀必须是 .pem,不是 .pem.txt) - 把下载的文件直接覆盖进刚建好的
certifi/目录 - 确认用户配置中
"ssl_verification": true(默认就是 true,不用改) - 重启 Sublime,打开控制台执行
import ssl; print(ssl.get_default_verify_paths()),输出里应含你放进去的路径
为什么换了证书还失败?检查这三处
常见“换完还是报错”基本都栽在这几个坑里:
- 系统时间不准:误差超 5 分钟就直接拒连。Windows 开启“自动设置时间”;macOS 进“系统设置 → 通用 → 日期与时间”并勾选“自动设置时间”
-
channel 地址加载失败:默认
https://packagecontrol.io/channel_v3.json在国内多数打不开,导致“没反应”而非报错。需修改Preferences → Package Settings → Package Control → Settings – User,填入可用镜像:{"channels": ["https://gitee.com/azl397985856/package_control_channel/raw/master/channel_v3.json"]},改完必须重启 -
插件被静默屏蔽:装完插件却搜不到命令?打开控制台搜
ignored_packages,如果插件名出现在输出里,编辑 Settings – User,删掉或移出"ignored_packages"数组中的对应项
手动安装插件仍无效?路径和依赖链要对齐
很多人把 .sublime-package 文件丢进 Packages/ 目录,结果插件完全不加载——Sublime 只从 Installed Packages/ 读取这类文件。
- 运行
print(sublime.installed_packages_path())确认真实路径(比如/Users/xxx/Library/Application Support/Sublime Text/Installed Packages/) - 把插件文件(如
EmmyLua.sublime-package)直接放进这个Installed Packages/目录 - 确保
Package Control已正常加载:重启后按Ctrl+Shift+P输入Package Control,能看到命令列表才代表基础链路通了 - 如果
Package Control: Install Package都不出现,先解决它的问题,再装其他插件——否则手动丢包也没用
cacert.pem 放错目录、Installed Packages/ 和 Packages/ 混用、以及镜像 channel 没重启生效,这三处占了八成失败案例。


















