web-dev-qa-db-fra.com

npm add root CA

Je suis à la recherche d'un moyen d'ajouter une autorité de certification personnalisée à NPM afin que je puisse télécharger à partir d'un emplacement à l'aide dudit certificat (un serveur git interne) sans avoir à nuke tous les CA-vérification avec

npm config set strict-ssl false

Y a-t-il un moyen d'y parvenir ou non? (sinon: y a-t-il déjà un défaut?)

48
FrankyBoy

Vous pouvez pointer npm vers un cafile

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

Vous pouvez également configurer ca chaîne (s) directement.

npm config set ca "cert string"

ca peut également être un tableau de chaînes de certificat. Dans votre .npmrc:

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

Le npm config les commandes ci-dessus conserveront les éléments de configuration pertinents dans votre ~/.npmrc fichier:

cafile=/path/to/cert.pem

Remarque: ces paramètres d'autorité de certification remplaceront les recherches d'autorité de certification par défaut "réelles" que npm utilise. Si vous essayez d'utiliser des registres npm publics via https qui ne sont pas signés par votre certificat CA, vous obtiendrez des erreurs.

Si vous devez prendre en charge les deux registres publics https npm ainsi que le vôtre, vous pouvez utiliser bundle CA de Mozilla basé sur curl et ajouter votre certificat CA au cacert.pem fichier. Malheureusement, le bundle CA de npm n'est pas modifiable car il est fourni dans le code source (merci tomekwi ).

Remarque RHEL: Si vous utilisez une distribution basée sur RHEL et le nodejs/npm empaqueté RHEL, vous pouvez utiliser le standard update-ca-trust méthode car RedHat pointe ses packages vers les autorités de certification du système.

76
Matt

Si Matts Answer ne vous aide pas, $env:NODE_EXTRA_CA_CERTS=path/to/certificate.pem; npm install a travaillé pour moi dans Windows Powershell.

1
nitzel