npm添加根CA.

时间:2014-05-21 16:10:28

标签: npm ca

我正在寻找一种向NPM添加自定义CA的方法,以便我可以使用所述证书(内部git-server)从一个位置下载,而无需使用

进行所有CA检查。
npm config set strict-ssl false

有没有办法实现这个目标? (如果没有:是否已存在缺陷?)

2 个答案:

答案 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中为我工作。