npm / bun
npm install 报 ECONNRESET 或证书错误
报错原文
npm ERR! request to https://registry.npmjs.org/xxx failed, reason: unable to get local issuer certificate
出现场景
公司网络、校园网或某些本地代理软件开启 HTTPS 检查时执行 npm/bun install 报证书或连接被重置。
可能原因(按概率)
- 本地代理/防火墙对 HTTPS 做了中间人证书替换, Node 信任链里没有这个自签证书
- npm 配置的 registry 或 proxy 地址本身不可达, 触发连接重置
- Node.js 18+ 默认更严格的 TLS 校验, 老配置在新版本上不再兼容
修复步骤(从最简单的开始)
- 先确认是否代理导致: npm config get proxy , 无代理需求就 npm config delete proxy 清掉残留配置
- 改用国内镜像绕开证书拦截层: npm config set registry https://registry.npmmirror.com/
- 确有自签证书需求, 把代理的 CA 证书导出后配置: npm config set cafile /path/to/proxy-ca.pem 或环境变量 export NODE_EXTRA_CA_CERTS=/path/to/proxy-ca.pem
- 仅本地临时验证可用(不建议长期使用): npm config set strict-ssl false
- bun 用户改用 bunfig.toml 里的 [install] ca 或 cafile 字段指定证书路径, bun 目前没有等价于 NODE_EXTRA_CA_CERTS 的全局变量
大陆网络环境注记
国内镜像(npmmirror.com, 原淘宝源已下线)是首选方案, 无需代理即可提速; 如果是公司/校园强制 HTTPS 检查环境, 才需要额外处理证书信任问题, 两者是不同成因, 先分清楚再对症下药。
反复被网络 / 支付 / 限流问题耗时间?国内直连的 API 网关一个 key 通多家模型,绕开这一整类报错。
了解 newapi 网关npmbun证书ECONNRESET安装