npm installするとSSL/TLSネットワークエラーが発生した場合の対処方法(ESET編)

# 記事を書こうと思った背景

## ある日突然、npm installするとう、うごかない...
Node.jsパッケージ管理ツール「npm」を使って開発していると、ある日突然、npm経由でソフトウェアをインストールできなくなってしまった...💦
![エラー1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/0b277a74-adc5-8595-e880-4048a137ccf5.png)


今まで普通にダウンろーできなのに...かなり焦りました。

## 試みたこと

| 試みた内容 | 手法 | 結果|
|:-----------|------------:|------------:|
| npmのバージョン更新       | npm install -g npm        |×|
| Proxyの確認     | npm -g config list        |×|
| Node.jsの再インストール|[Node.jsダウンロード公式サイト](https://nodejs.org/en)       |×|
| Node.jsのパスを環境変数に設定|−|×|
| npmのパスを環境変数に設定|−|×|
| PCの再起動     | −     |×|

上記のいすれをしても解決には至りませんでした。

## ググっても、ChatGPTに聞いても有効手立てがない...
ググっても、ChatGPTに聞いても有効な対応策は得られず...

## もしかしてセキュリティソフトかも...！？
とにかく色々調べた結果セキュリティソフトに原因があるんじゃないかと仮説を立ててみました。
結論から言うと、セキュリティソフトの「SSL/TLS」設定を変更することですんなりと、npm経由でのソフトウェアをダウンロードすることができました。

今回は、セキュリティソフト「ESET」の設定変更方法についてと、その変更によってnpmの挙動が改善されたかどうかについての検証記事となります。

# 使っているセキュリティソフトは「ESET」

## ESETとは
ESETは、スロバキアに本社を置くセキュリティソフト開発会社で、動作が軽量なため人気なセキュリティソフトです。
日本では、キャノン株式会社がソフトの販売・運営をしています。

# 私のローカル環境について

今回検証した環境は下記です。
| OSまたはソフト | バージョン |
|:-----------|------------:|
| Windows11|−|×|
| セキュリティソフト「ESET」|17.0.16.0|
| Node.js|20.12.2|
| npm|10.5.0|

:::note info
ESETのバージョン確認方法の手順はこちら↓
:::

１．ESETのホーム画面を開く

![esetホーム画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/65218f28-7487-fbd6-0c9d-11dac9937889.png)


２．ヘルプとサポートタブを開く
![esetヘルプとサポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/5412b58b-daec-3787-7c6f-6ed7654296fa.png)


# 立てた仮説を検証してみる～ESETの設定の変更～

１．ホーム画面を起動する。
![esetホーム画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/d4d83276-51b3-e9bb-4bed-2253815ac838.png)


２．「設定」タブをクリックする。右下に「詳細設定」ボタンがあるのでクリックする。
![eset設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/33a0e6c2-58de-0ad4-cacb-cffd8a51fdbf.png)

３．詳細設定ダイアログ画面から、「SSL/TLS」タブをクリックする。
![esetTLS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/533a25d0-544a-4693-17bf-141a4386dae2.png)


４．デフォルトでは、「SSL/TLSを有効にする」のトグルボタンが「ON」になっているので...
![esetTLSON.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/9619e08b-6333-0dae-35eb-53a1fe460cad.png)

５．「SSL/TLSを有効にする」のトグルボタンを「OFF」に切り替えて、右下の「OK」ボタンをクリックする。
![esetTLSOFF.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/a4cf5032-685f-fd59-5753-3838221b155d.png)

６．「変更しますか」というダイアログが表示されるので、「はい」を選択する。

７，もう一度、詳細設定大ログを開いて、「SSL/TLSを有効にする」のトグルボタンを「OFF」になっていることを確認する。
![esetTLSOFF2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/890879c8-3af9-fba0-6987-064056fe438a.png)

# npmがちゃんと動くか確認する
ESETの設定変更が完了したので、npmがちゃんと動くか検証してみました。

サンプルとして、Nest.jsのプロジェクトを作ってみます。

１．Nest.jsのコマンドを打ってみる。
```
npm install nestjs/cli 
```
![解消1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/8d3cce12-6c6b-72ab-4d12-39ca3fc92f77.png)

<b>動いたー！！</>

２．つづいてNest.jsのプロジェクト作成コマンドを打ってみる。
```
npz nest new nest_app
```
![解消2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/ccdb8963-927c-7632-0934-559930548aba.png)

<b>これも大丈夫！！</>

３．テンプレートエンジン「ejs」をインストールしてみる
```
npm install ejs
```
![解消3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/71ed97b1-2ddb-542f-acc2-78b5a5ef9746.png)

<b>よかった～！！</>

# まとめ
今回、私のローカル環境ではnpmが突然動かなくなったのは、「SSL/TLS」の設定が原因でした。
（でも、これまでは普通にできたんだけど...なんでだろう....？？）

もし、npmが突然動かなくなって人は参考にしていただけると嬉しいです。

# 開発が終わった後は、ESETの設定を元通りにすること

:::note warn
開発が終わった後は、セキュリティの観点から大事なPCを守るため、
ESETの「SSL/TLS」の変更を「有効にする」に戻しておきましょう。
![esetTLSON.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/0fc3e158-8855-2340-1e70-fc2d89d1e95f.png)

:::

# 参考にした記事
■npm install すると証明書エラーが起きた　@ishhhhhmr
[記事はこちら](https://qiita.com/ishhhhhmr/items/b50d6e5e852a6080b523)