macOS yarn add报unable to get local issuer certificate错误排查
Yarn 报
unable to get local issuer certificate 排查修复方案 报错核心原因是Yarn依赖的Node.js SSL信任库无法校验yarn源HTTPS证书的签发根证书,无手动改配置突发异常、无手动代理的场景下,按以下优先级排查:
- 全局配置异常排查
首先检查Yarn和npm的CA证书相关配置是否被异常篡改,依次执行以下命令查看配置值:
如果返回结果不是yarn config get cafile yarn config get ca npm config get cafile npm config get canull,说明存在自定义证书配置,若对应路径的证书文件不存在、已过期,就会触发证书校验失败。执行以下命令删除异常配置即可恢复:
这类异常通常是此前安装的抓包工具、开发辅助工具卸载/升级时残留错误配置,或是系统安全软件静默修改了全局包管理配置导致。yarn config delete cafile yarn config delete ca npm config delete cafile npm config delete ca - Node内置证书库不兼容排查
Yarn 1.x版本不会直接读取macOS钥匙串中的系统根证书,默认依赖Node.js内置的Mozilla CA证书库做校验。macOS Monterey 12.x版本存在偶发的系统根证书更新、iCloud私有中继节点证书未被旧版Node内置CA库收录的问题,会直接触发校验失败。
先执行命令指定Yarn使用macOS系统自带的根证书库做校验:
执行后重试yarn config set cafile /etc/ssl/cert.pemyarn add操作,若功能恢复,说明根因是Node内置CA库版本过旧,永久修复可直接升级Node.js到最新LTS版本,新版Node会同步更新内置的根证书列表。 - 透明代理劫持排查
即使未手动开启代理,部分家用路由器的HTTPS加速功能、运营商的链路缓存/广告过滤机制会做透明HTTPS代理,替换站点证书,也会触发校验失败。可直接切换到手机热点测试,如果热点环境下操作正常,即可定位为本地网络侧问题,登录路由器后台关闭HTTPS加速/广告过滤功能即可解决。
安全提示:
yarn config set strict-ssl false仅可用于临时排障,长期关闭SSL校验会存在中间人攻击、下载被篡改的恶意依赖包的风险,排障完成后务必执行命令恢复默认校验配置:yarn config set strict-ssl true
内容的提问来源于stack exchange,提问作者asinkxcoswt
相关产品推荐
相关产品推荐

