カスタムCAをNPMに追加して、すべてのCAチェックを無効にすることなく、上記の証明書(内部gitサーバー)を使用して場所からダウンロードできるようにする方法を探しています。
npm config set strict-ssl false
これを達成する方法はありますか? (そうでない場合:すでに欠陥がありますか?)
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
メソッドを使用できます。
Matts Answer が役に立たない場合、$env:NODE_EXTRA_CA_CERTS=path/to/certificate.pem; npm install
Windows Powershellで働いていました。