Windows10下npm install sqlite3报unable to get local issuer certificate错误
解决Windows 10下npm安装sqlite3的SSL证书校验问题
我碰到过很多开发者遇到这个情况,核心问题在于node-pre-gyp下载sqlite3预编译二进制包时,Windows系统的根证书存储中缺少对应CA证书,而且你之前设置的strict-ssl=false是npm的全局配置,node-pre-gyp作为独立工具并没有继承这个设置,所以没起作用。下面给你几个针对性的解决办法:
方法一:给node-pre-gyp单独禁用SSL校验
直接在安装命令中指定node-pre-gyp的参数,强制它跳过SSL校验:
npm install sqlite3 --unsafe-perm --build-from-source=false --node-pre-gyp-options="--strict-ssl=false"
或者先临时设置环境变量,再执行安装(适合需要多次安装的场景):
# 在CMD中执行 set NODE_PRE_GYP_GLOBAL_FLAGS=--strict-ssl=false npm install sqlite3
方法二:手动导入缺失的CA证书到Windows根证书库
既然Postman能正常访问下载链接,说明Postman信任该证书,我们可以从Postman导出证书并导入到Windows系统:
- 用Postman打开下载链接(比如你测试的
https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.1.1/node-v72-win32-x64.tar.gz) - 点击地址栏的锁形图标,查看证书详情,选择导出证书为Base64编码的CER格式
- 按下Win+R,输入
certlm.msc打开「本地计算机证书管理器」 - 展开「受信任的根证书颁发机构」>「证书」,右键选择「所有任务」>「导入」
- 按照向导步骤导入刚才导出的CER文件,完成后重启终端再执行
npm install sqlite3
方法三:切换到国内镜像源下载二进制包
如果不想处理证书问题,可以配置npm使用国内的sqlite3镜像源,避免访问国外的证书校验问题:
npm config set sqlite3_binary_host_mirror=https://npm.taobao.org/mirrors/sqlite3/ npm install sqlite3
这几个方法里,方法一最快捷适合临时解决,方法二是彻底解决证书信任问题,方法三适合网络环境受限的场景,你可以根据自己的需求选择。
内容的提问来源于stack exchange,提问作者Constantine Ch
相关产品推荐
相关产品推荐

