node.js, reactjs, npm で "npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY" エラーが発生したときの対処法
"node.js", "reactjs", "npm" における "npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY" エラーの解説
"npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY" エラーは、npm
コマンドを使用して node.js
または reactjs
プロジェクトのパッケージをインストールまたは更新しようとしたときに発生する可能性があります。これは、HTTPS 接続を使用してパッケージをダウンロードしようとするときに、サーバーの証明書を検証できないことが原因で発生します。
原因
このエラーが発生する主な原因は次のとおりです。
- ローカルの信頼ストアに、サーバーの証明書を発行した証明機関の証明書がない
- サーバーの証明書が有効期限切れまたは無効
- ネットワーク接続の問題
- ファイアウォールの設定
解決策
このエラーを解決するには、以下の方法を試してください。
npm の設定を変更する
以下のコマンドを実行して、npm の厳格な SSL 検証を無効にします。
npm config set strict-ssl false
サーバーの証明書をインストールする
サーバーの証明書をダウンロードして、ローカルの信頼ストアに追加できます。証明書の入手方法は、サーバーの管理者に問い合わせてください。
ネットワーク接続が安定していることを確認してください。プロキシサーバーを使用している場合は、プロキシの設定が正しく設定されていることを確認してください。
ファイアウォールが HTTPS 接続をブロックしていないことを確認してください。
npm キャッシュをクリアする
npm cache clear
npm を再インストールする
上記の方法で解決できない場合は、npm を再インストールしてみてください。
// package.json
{
"name": "my-app",
"version": "1.0.0",
"description": "My application",
"main": "index.js",
"dependencies": {
"axios": "^0.27.2"
}
}
// index.js
const axios = require('axios');
axios.get('https://api.example.com/')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
このコードを実行すると、以下のエラーが発生する可能性があります。
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! errno UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! syscall verify
npm ERR! node v18.12.1
npm ERR! npm v8.11.0
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! A complete log of this run can be found in:
npm ERR! /home/user/.npm/_logs/2023-11-14T12_54_47_233Z-debug.log
その他の解決策
別のネットワーク (例えば、別の Wi-Fi ネットワークやモバイルデータ通信) を使用して、問題が解決するかどうかを確認してください。
VPN を使用する
VPN (仮想プライベートネットワーク) を使用して、サーバーに接続すると問題が解決する可能性があります。
サーバーの管理者に問い合わせて、サーバーの証明書の問題を解決してもらってください。
npm のバージョンを上げて、問題が解決するかどうかを確認してください。
別のパッケージマネージャーを使用する
Yarn などの別のパッケージマネージャーを使用して、問題が解決するかどうかを確認してください。
問題を報告する
上記の方法で解決できない場合は、npm の GitHub リポジトリに問題を報告してください。
node.js reactjs npm