ルート証明書を追加するコンテンツフィルター下で npm を利用する方法

npm は OS とは別に独自の証明書チェックを行うため、ルート証明書を追加する方式のコンテンツフィルターが運用されているネットワークではそのまま利用できません。

発生するエラー

コンテンツフィルターが適用されているネットワーク下でそのまま npm を利用すると以下のようなエラーが発生してパッケージのダウンロードなどに失敗する場合があります。

npm ERR! errno SELF_SIGNED_CERT_IN_CHAIN

対応方法

コンテンツフィルターが利用している証明書を npm に設定することで、この問題を解決することができます。設定には以下のコマンドを利用します。

npm config set cafile [証明書ファイルへのパス]

解除方法

この設定を行うとコンテンツフィルターを利用していないネットワーク経由で通信を行った場合に npm が利用できなくなります。 その場合には以下のコマンドで設定を解除する必要があります。

npm config delete cafile

// もしくは
npm config delete cafile --location=global

参考資料