插件更新触发签名/证书错误是因VSCode 1.76+强制签名验证及npm旧镜像证书过期;需分别禁用verifySignature、切换registry至https://registry.npmmirror.com、或管理员运行certutil更新根证书。

插件更新后报 Signature: Untrusted 或 CERT_HAS_EXPIRED,不是证书“坏了”,而是 VSCode 启动时校验失败或 npm 镜像地址已停用——必须改配置、换源或重装证书,不能靠重启解决。
为什么插件更新会触发签名/证书错误
VSCode 1.76+ 对远程插件强制启用签名验证,而部分旧版插件(尤其是企业内网分发或手动打包的 .vsix)未使用微软市场签名;同时,npm 类插件若依赖过期镜像(如 registry.npm.taobao.org),其 HTTPS 请求会因证书过期直接被 Node 拒绝。
- 错误
[error] Untrusted: Signature多见于 Remote-SSH 连接场景,VSCode Server 默认启用extensions.verifySignature: true,但内网部署的插件包无合法签名 -
CERT_HAS_EXPIRED几乎全是 npm 镜像问题:淘宝旧域名证书早在 2022 年过期,至今仍有不少脚本或 CI 配置硬编码该地址 - Windows 上还可能叠加系统根证书过期(如 KB931125 未更新),导致 Marketplace HTTPS 连接整体失败
禁用插件签名验证(Remote-SSH 场景首选)
适用于通过 SSH 连接到 Linux/macOS 远程服务器后安装插件失败的情况,不推荐用于公网环境,但对内网开发机最直接有效。
- 编辑远程服务器上的配置文件:
~/.vscode-server/data/Machine/settings.json - 添加一行:
"extensions.verifySignature": false - 若该文件不存在,手动创建(注意路径中
.vscode-server开头的点不能漏) - 保存后,**必须完全退出 VSCode 客户端(包括托盘进程)再重连**,否则设置不加载
修复 npm 镜像证书过期(本地终端和插件共用)
VSCode 内置终端执行 npm install 报 CERT_HAS_EXPIRED,本质是请求了已失效的镜像地址,和浏览器能否访问无关。
- 立即切换到新镜像:
npm config set registry https://registry.npmmirror.com - 检查是否生效:
npm config get registry,输出必须是https://registry.npmmirror.com(不能是http://) - 如果用了
cnpm,需重装:npm install -g cnpm --registry=https://registry.npmmirror.com - 全局配置后,VSCode 终端里新开一个 tab 即可生效,无需重启编辑器
Windows 根证书批量更新(应用商店 + Marketplace 全挂时必做)
当 VSCode 插件市场、Microsoft Store、Edge 下载都失败,且错误码含 0x80072F0D 或 XHR failed,大概率是系统级根证书过期。
- 以管理员身份运行 PowerShell
- 执行:
certutil -generateSSTFromWU roots.sst - 命令无输出即成功;完成后重启 VSCode 和 Store 应用
- 此操作从 Windows Update 强制拉取最新根证书列表,比手动下载 KB 补丁更可靠
真正卡住的点往往不在插件本身——而是签名开关没关对位置、镜像地址改错协议、或证书更新没提权执行。改完任何一项,都要确认 VSCode 是彻底退出再重开,否则缓存会让问题看起来“没解决”。


















