You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

npm安装报错UNABLE_TO_GET_ISSUER_CERT_LOCALLY是否为公司防火墙/政策问题的咨询

npm安装报错UNABLE_TO_GET_ISSUER_CERT_LOCALLY是否为公司防火墙/政策问题的咨询

嗨,我来帮你梳理这个问题~

这个报错大概率是公司防火墙/网络政策导致的,原因是这样的:

你的公司防火墙很可能开启了SSL流量拦截(也就是常说的“中间人”拦截),它会替换掉目标服务器的SSL证书,用公司自己的根证书重新签名。浏览器能正常访问https://registry.npmjs.org/,是因为你的系统或浏览器已经预先导入并信任了公司的根证书,但npm(底层依赖Node.js的证书验证机制)默认只信任官方的根证书列表,没有包含公司的根证书,所以在puppeteer安装时下载Chrome的过程中,无法验证被防火墙替换后的证书,就抛出了UNABLE_TO_GET_ISSUER_CERT_LOCALLY错误。

给你几个可行的解决方向:

  • 配置npm信任公司根证书(推荐,安全合规)
    找到公司IT提供的根证书文件(通常是.crt或.pem格式),然后执行以下命令配置npm使用这个证书:

    npm config set cafile "C:/路径/到/公司根证书.crt"
    

    配置完成后再尝试执行npm install -g puppeteer,应该就能正常验证证书并下载了。

  • 临时关闭npm的严格SSL验证(仅在可信环境下使用,有安全风险)
    如果暂时拿不到公司根证书,可以临时关闭npm的严格SSL检查:

    npm config set strict-ssl false
    

    完成安装后建议再改回true,避免后续安装其他包时的安全隐患。

  • 跳过Chrome下载(绕开当前问题,但不解决根本证书问题)
    按照错误提示的建议,设置环境变量跳过Chrome的自动下载:

    # Windows命令行下设置临时环境变量
    set PUPPETEER_SKIP_DOWNLOAD=true
    # 然后执行安装
    npm install -g puppeteer
    

    这种方式只是绕开了当前的下载报错,后续npm安装其他依赖时可能还会遇到相同的证书问题,所以只能作为临时方案。

总结一下:你的问题确实和公司防火墙的SSL拦截政策直接相关,只要让npm信任公司的根证书,就能解决这个问题啦。

备注:内容来源于stack exchange,提问作者Arthur Attout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 10:44:37