1. ホーム
  2. npm

npm add root CA

2023-09-21 23:10:08

質問

NPMにカスタムCAを追加する方法を探しています。そうすれば、すべてのCAチェックを解除することなく、その証明書を使った場所(内部のgitサーバー)からダウンロードすることができます。

npm config set strict-ssl false

これを実現する方法はあるのでしょうか、ないのでしょうか。(ない場合:すでに不具合があるのでしょうか?)

どのように解決するのですか?

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が使用するデフォルトのquot;real world" 認証局ルックアップを上書きします。もし、CA証明書によって署名されていないhttps経由のパブリックなnpmレジストリを使用しようとすると、エラーが発生します。

独自のレジストリだけでなく、httpsの公開されたnpmレジストリの両方をサポートする必要がある場合、次のように使用できます。 curlのMozillaベースのCAバンドル を使い、あなたの CA 証明書を cacert.pem ファイルに追加します。

curl https://curl.haxx.se/ca/cacert.pem > ~/.npm.certs.pem
cat my-ca-cert.pem >> ~/.npm.certs.pem
npm config set cafile ~/.npm.certs.pem

残念ながらnpmのCAバンドルは ソースコード (で提供されているため、編集できません。 トメクウィ ) ですが nitzel は、Node.js の汎用メソッドである を使って証明書を追加しています。 NODE_EXTRA_CA_CERTS 環境変数を使って証明書を追加する方法を提供しています。

RHEL ノート : RHEL ベースのディストロと RHEL パッケージの nodejs/npm を使っている場合、標準の update-ca-trust メソッドを使用します。 を使用すると、RedHat はそのパッケージをシステム CA に向けるので。