VSCode插件市场报“unable to verify the first certificate”是TLS证书链校验失败所致,常见于代理、根证书过期或干扰插件;验证后可关闭代理/插件、改用open-vsx.org源,或在代理环境下配置http.systemCertificates和http.proxyStrictSSL。

VSCode插件市场报“unable to verify the first certificate”
这是 VSCode 试图连接 marketplace.visualstudio.com 时,TLS 层拒绝服务端证书的典型表现,不是网络不通,而是证书链校验失败。常见于开了代理(Clash、Fiddler、公司 SSL Inspection)、系统根证书过期、或误装了干扰网络栈的插件(如 SteamCommunity302)。
先快速验证是不是证书问题
打开 VSCode 开发者工具(Ctrl+Shift+P → Developer: Toggle Developer Tools),切到 Console 标签页,看错误是否含 ERR_CERT_AUTHORITY_INVALID 或 unable to verify the first certificate。如果是,说明问题出在 HTTPS 握手阶段,和 DNS、防火墙策略无关。
- 临时关掉所有代理软件(包括系统代理开关、Clash/Fiddler 的“系统代理”模式)再试
- 关闭疑似干扰插件:比如
SteamCommunity302、AdGuard、Privacy Badger等带网络拦截能力的扩展,然后彻底重启 VSCode(不只是 Reload Window) - 在终端直接跑:
curl -I https://marketplace.visualstudio.com,如果也报证书错,说明是系统/代理层问题;如果 OK,那问题大概率在 VSCode 自身配置或插件
切换为 open-vsx.org 市场源(国内首选)
不用改证书、不碰代理、不设环境变量,最稳的绕过方式。open-vsx.org 使用标准 HTTPS,且域名证书由 Let’s Encrypt 签发,系统默认信任。
- 打开设置 → 搜索
extensions.gallery→ 点击“在 settings.json 中编辑” - 填入以下内容(注意 JSON 格式,末尾不能多逗号):
{ "extensions.gallery": { "serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item" } } - 保存后,**必须完全退出 VSCode(右键托盘图标 → Quit,macOS 是 Cmd+Q,Windows 是右键任务栏图标 → Exit)**,再重开
- 首次加载可能稍慢,但搜索框能出结果、安装按钮可点击即表示生效
代理环境下必须配对的两个设置
如果你必须走代理(比如企业内网),光设 http.proxy 不够,VSCode 默认仍会校验证书,而代理返回的是自签名证书。
- 在
settings.json中同时启用:"http.systemCertificates": true,
"http.proxyStrictSSL": false
-
http.systemCertificates让 VSCode 读系统根证书(Windows 证书管理器 / macOS 钥匙串),http.proxyStrictSSL则关闭对代理证书的校验 —— 二者缺一不可 - 代理地址必须带协议头,例如:
"http.proxy": "http://127.0.0.1:7890",不能只写127.0.0.1:7890 - 改完同样要彻底退出 VSCode 再启动,否则新设置不会注入 Electron 网络栈
真正容易被忽略的是:VSCode 的网络请求由 Electron 托管,它不继承 shell 的 NODE_TLS_REJECT_UNAUTHORIZED 或 npm 的 strict-ssl 设置;任何证书问题都得从 Electron 层或系统证书链入手,而不是去改 Node.js 脚本里的 https.Agent。


















