node.js、ssl-certificate、npmで「Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN」エラーが発生した時の対処法

2024-04-02

npm を使用中に Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN エラーが発生する場合、これは自己署名証明書の問題が原因です。

原因

このエラーは、npm がアクセスしようとしているレジストリが自己署名証明書を使用している場合に発生します。 自己署名証明書は、信頼できる認証局によって発行されていない証明書です。 npm はデフォルトでこれらの証明書を信頼しないため、エラーが発生します。

解決策

このエラーを解決するには、以下の方法があります。

npm のバージョンを上げる

npm 6.14.4 以降では、自己署名証明書に対するデフォルトの動作が変更されました。 これらのバージョンでは、--strict-ssl フラグを指定しない限り、自己署名証明書が自動的に信頼されます。

npm install --global npm@latest

--strict-ssl フラグを指定する

npm 6.14.4 より前のバージョンを使用している場合、または自己署名証明書を信頼しない場合は、--strict-ssl フラグを指定して npm コマンドを実行できます。

npm install --strict-ssl=false <package-name>

NODE_TLS_REJECT_UNAUTHORIZED 環境変数を 0 に設定すると、npm はすべての証明書を信頼します。

export NODE_TLS_REJECT_UNAUTHORIZED=0
npm install <package-name>

レジストリの設定を変更して、自己署名証明書を信頼するようにすることもできます。

レジストリの設定方法は、レジストリによって異なります。 詳細については、レジストリのドキュメントを参照してください。

信頼できる証明書をインストールする

自己署名証明書を発行した認証局の信頼できる証明書をインストールすることもできます。

証明書のインストール方法は、オペレーティングシステムによって異なります。 詳細については、オペレーティングシステムのドキュメントを参照してください。

注意事項

自己署名証明書は、信頼できない場合があります。 自己署名証明書を信頼する前に、証明書の発行元を確認する必要があります。




// package.json

{
  "name": "my-app",
  "version": "1.0.0",
  "dependencies": {
    "some-package": "^1.0.0"
  }
}
// index.js

const somePackage = require('some-package');

console.log(somePackage.version);

エラー例

npm install

npm ERR! code E501
npm ERR! errno 501
npm ERR! syscall install

npm ERR! Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/user/.npm/logs/2023-08-01T08_40_34_424Z-debug.log

上記の解決策のいずれかを使用して、エラーを解決できます。

npm install --global npm@latest

npm install
npm install --strict-ssl=false some-package

例:環境変数 NODE_TLS_REJECT_UNAUTHORIZED を設定する

export NODE_TLS_REJECT_UNAUTHORIZED=0

npm install some-package

例:レジストリの設定を変更する




その他の解決策

npmrc ファイルは、npm の設定を保存するためのファイルです。 このファイルを使用して、レジストリの設定や、--strict-ssl フラグのようなデフォルトの npm コマンドオプションを変更することができます。

# .npmrc ファイル

registry=https://registry.npmjs.org/
strict-ssl=false

yarn を使用する

yarn は、npm に似たパッケージマネージャーです。 yarn はデフォルトで自己署名証明書を信頼するため、npm でエラーが発生する場合でも、yarn で問題なくインストールできる場合があります。

yarn install <package-name>

直接ダウンロードする

どうしても npm でインストールできない場合は、パッケージを直接ダウンロードしてインストールすることもできます。

  1. パッケージのレジストリページにアクセスします。
  2. ダウンロードしたいバージョンのパッケージのリンクをクリックします。
  3. ダウンロードしたファイルを解凍します。
  4. 解凍したフォルダに移動して、npm install コマンドを実行します。

直接ダウンロードする方法を使用する場合は、ダウンロードするファイルが安全であることを確認する必要があります。

npmError: SSL Error: SELF_SIGNED_CERT_IN_CHAIN エラーが発生した場合は、上記の解決策を試してください。 どの方法が最適かは、状況によって異なります。


node.js ssl-certificate npm


Node.js の fs.readFile() 関数が文字列ではなくバッファーを返す理由

効率性バッファーは、ファイルの内容をメモリに効率的に格納する方法です。文字列に変換するよりも少ないメモリを使用し、処理速度も速くなります。エンコーディングの柔軟性ファイルの内容は、さまざまなエンコーディングで保存されている可能性があります。バッファーを使用すると、エンコーディングを指定せずにファイルの内容を読み込むことができ、後で必要に応じて好きなエンコーディングに変換できます。...


Node.js プロジェクトのバージョン管理: package-lock.json ファイルの役割

npm は、Node. js のパッケージマネージャーであり、package. json ファイルに基づいて依存関係をインストールしたり管理したりするのに役立ちます。以下の手順で、現在のディレクトリにある package. json ファイルの依存関係をインストールすることができます。...


Node.jsで現在のOSを特定する方法 - process.envオブジェクトを使う

Node. js には、OS に関する情報を取得するための os モジュールが組み込まれています。 このモジュールを使う方法は以下の通りです。このコードを実行すると、以下のような出力が得られます。process. env オブジェクトには、環境に関するさまざまな情報が含まれています。...


NPMでインストールしたモジュールを編集して、オリジナルモジュールを作成しよう!

方法 1:node_modules ディレクトリを直接編集する最も簡単な方法は、node_modules ディレクトリにあるモジュールのソースコードを直接編集することです。ただし、この方法にはいくつかの注意点があります。編集したモジュールが更新されると、変更が元に戻ってしまいます。...


Node.js + Homebrewで迷子にならない!「env: node: No such file or directory」エラーの解決策と回避策

このエラーは、MacでNode. jsを実行しようとするときに発生し、主に以下の2つの原因が考えられます。Node. jsがインストールされていない: Homebrewを使っていない場合は、Node. jsがインストールされていない可能性があります。...


SQL SQL SQL SQL Amazon で見る



Node.jsでnpmを使う際に発生する「SSL Error: CERT_UNTRUSTED」の解決法とは?

npmコマンドで「SSL Error: CERT_UNTRUSTED」エラーが発生するのは、主に以下の2つの原因が考えられます。古いバージョンのNode. jsを使用している2021年9月以降、古いバージョンのNode. js(8.x以前、または10


【初心者でも安心】Node.js/npmで「npm ERR! code SELF_SIGNED_CERT_IN_CHAIN」エラーが発生?解決策を画像付きで分かりやすく解説

"npm ERR! code SELF_SIGNED_CERT_IN_CHAIN" エラーは、Node. js パッケージマネージャーである npm で発生するエラーです。このエラーは、npm がレジストリからパッケージをダウンロードしようとしたときに、レジストリの証明書が自己署名されている場合に発生します。


Node.jsで「npm install」エラー発生!「unable to get local issuer certificate」の原因と解決策を徹底解説

"npm install error - unable to get local issuer certificate" は、Node. js パッケージマネージャーである npm でパッケージをインストールしようとすると発生するエラーメッセージです。このエラーは、npm が SSL/TLS 証明書を検証できないことを示しています。SSL/TLS 証明書は、ウェブサイトやサーバーのアイデンティティを確認するために使用されるデジタル証明書です。