我正在寻找一种向NPM添加自定义CA的方法,以便我可以使用所述证书(内部git-server)从一个位置下载,而无需使用
进行所有CA检查。npm config set strict-ssl false
有没有办法实现这个目标? (如果没有:是否已存在缺陷?)
答案 0 :(得分:70)
您可以将npm指向cafile
npm config set cafile /path/to/cert.pem
您还可以直接配置ca
字符串。
npm config set ca "cert string"
ca
也可以是一系列证书字符串。在.npmrc
:
ca[]="cert 1 base64 string"
ca[]="cert 2 base64 string"
上面的npm config
命令会将相关配置项保留在~/.npmrc
文件中:
cafile=/path/to/cert.pem
注意 :这些CA设置将覆盖npm使用的默认“真实世界”证书颁发机构查找。如果您尝试通过未通过CA证书签名的https使用任何公共npm注册表,则会出现错误。
如果您需要同时支持公共https npm注册表和您自己的注册表,您可以使用curl's Mozilla based CA bundle并将您的CA证书附加到cacert.pem
文件。不幸的是,npm的CA包不可编辑,因为它在source code中提供(感谢tomekwi)。
RHEL注意 :如果您正在使用基于RHEL的发行版和RHEL打包的nodejs / npm,您可以使用标准的update-ca-trust
方法作为RedHat将他们的包指向系统CA.
答案 1 :(得分:0)
如果Matts Answer对您没有帮助,$env:NODE_EXTRA_CA_CERTS=path/to/certificate.pem; npm install
在Windows Powershell中为我工作。