npm add root CA

删除回忆录丶 提交于 2019-11-27 09:40:07

问题


I am looking for a way to add a custom CA to NPM so I can download from a location using said certificate (an internal git-server) without having to nuke all CA-checking with

npm config set strict-ssl false

Is there any way of achieving this or not? (if not: is there already a defect?)


回答1:


You can point npm to a cafile

npm config set cafile /path/to/cert.pem

You can also configure ca string(s) directly.

npm config set ca "cert string"

ca can be an array of cert strings too. In your .npmrc:

ca[]="cert 1 base64 string"
ca[]="cert 2 base64 string"

The npm config commands above will persist the relevant config items to your ~/.npmrc file:

cafile=/path/to/cert.pem

Note: these CA settings will override the default "real world" certificate authority lookups that npm uses. If you try and use any public npm registries via https that aren't signed by your CA certificate, you will get errors.

If you need to support both public https npm registries as well as your own, you could use curl's Mozilla based CA bundle and append your CA cert to the cacert.pem file. Unfortunately npm's CA bundle is not editable as it's provided in the source code (thanks tomekwi).

RHEL Note: If you happen to be using a RHEL based distro and the RHEL packaged nodejs/npm you can use the standard update-ca-trust method as RedHat points their packages at the system CA's.




回答2:


If Matts Answer isn't helping you, $env:NODE_EXTRA_CA_CERTS=path\to\certificate.pem; npm install worked for me in Windows Powershell.

For DOS/cmd (pointed out by Marc in the comments)

set NODE_EXTRA_CA_CERTS=C:\\path\\to\\certificate.pem
npm install


来源:https://stackoverflow.com/questions/23788564/npm-add-root-ca

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!