web-dev-qa-db-ja.com

npmはルートCAを追加します

カスタムCAをNPMに追加して、すべてのCAチェックを無効にすることなく、上記の証明書(内部gitサーバー)を使用して場所からダウンロードできるようにする方法を探しています。

npm config set strict-ssl false

これを達成する方法はありますか? (そうでない場合:すでに欠陥がありますか?)

48
FrankyBoy

Npmに cafile を指定できます

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

ca string(s)を直接設定することもできます。

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

Note:これらのCA設定は、npmが使用するデフォルトの「実際の」認証局ルックアップをオーバーライドします。 CA証明書で署名されていないパブリックnpmレジストリをhttps経由で使用しようとすると、エラーが発生します。

パブリックhttps npmレジストリと独自のレジストリの両方をサポートする必要がある場合は、 curlのMozillaベースのCAバンドル を使用して、CA証明書をcacert.pemファイルに追加できます。残念ながら、npmのCAバンドルは ソースコード で提供されているため編集できません(ありがとう tomekwi )。

RHEL Note:たまたまRHELベースのディストリビューションとRHELパッケージnodejs/npmを使用している場合RedHatがパッケージをシステムCAに向けるので、標準のupdate-ca-trustメソッドを使用できます。

76
Matt

Matts Answer が役に立たない場合、$env:NODE_EXTRA_CA_CERTS=path/to/certificate.pem; npm install Windows Powershellで働いていました。

1
nitzel