安装任意JS包时触发npm证书错误error:0906D06C,请求协助排查原因
解决npm安装包时出现的PEM证书错误
这个错误error:0906D06C:PEM routines:PEM_read_bio:no start line通常和SSL证书验证失败有关,结合你的环境(Node v9.3.0、npm 5.5.1),可以按照以下步骤逐一排查解决:
1. 重置npm镜像源到默认值
首先确认你的npm registry配置是否正确,有时候镜像源被篡改或配置错误会导致证书验证问题:
npm config set registry https://registry.npmjs.org/
2. 临时禁用SSL严格检查(测试用)
如果重置源后还是报错,可以临时关闭npm的SSL严格验证来测试是否是证书问题:
npm config set strict-ssl false
注意:这只是临时方案,不建议长期使用,解决问题后记得改回
true以保证安全性。
3. 更新npm到兼容的新版本
你的npm 5.5.1版本较旧,存在不少已知的SSL相关bug,尝试更新到对应Node版本支持的最新npm(Node v9最高支持npm 6.x系列):
npm install -g npm@6
4. 修复系统根证书配置
XAMPP的Apache可能自带了SSL证书,导致Node的证书链验证异常。可以手动指定npm使用系统的根证书:
- Windows:
npm config set ca "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt" - macOS/Linux:
npm config set ca "/etc/ssl/cert.pem"
5. 检查并移除代理配置
如果你之前设置过代理,代理的SSL证书可能导致验证失败,检查并移除代理:
# 查看当前代理配置 npm config get proxy npm config get https-proxy # 如果有配置,删除它们 npm config delete proxy npm config delete https-proxy
额外建议:升级Node.js版本
Node v9.3.0是早已停止维护的旧版本,不仅存在安全漏洞,还可能和新版npm、包依赖不兼容。建议升级到长期支持(LTS)版本(比如v18.x),从根本上避免这类旧版本带来的问题。
内容的提问来源于stack exchange,提问作者Mustabshir Khan




