create-next-app がSSL関連のエラーで失敗!ESETの設定が原因だった。
create-next-appで楽しくnextプロジェクトを構築しようとしていたら、謎のSSLエラーが発生!
何度試しても同じエラーが発生し、構築が進まない。
今回は同じ悩みを持つ方向けに、解決までの道のりを備忘録として簡単にまとめました。
エラーの発生状況
VSコードからNEXTを構築する際にエラーに遭遇しました。
npx create-next-app client --ts
普通にTypeScriptを有効化したnextを構築したい。それだけ..
しかーし、次のようなエラーが発生し、構築作業が止まっちゃいました。
npm ERR! code ERR_SSL_CIPHER_OPERATION_FAILED
npm ERR! C8380000:error:1C800066:Provider routines:ossl_gcm_stream_update:cipher operation failed:...
npm ERR! A complete log of this run can be found in: C:\Users\...
Aborting installation.
npm install --save-exact --save react react-dom next typescript @types/react @types/node @types/react-dom eslint eslint-config-next has failed.
ガーン…!
そうして3時間以上に渡る戦いが始まりました。
エラーの内容について
npmと外部レジストリとの通信に問題があることを示しています。
特に、SSL暗号操作に関連する問題が発生しています。
ただし、このエラー自体はNext.jsやその他のライブラリの問題ではありません。
通常、ネットワークや環境の設定に関連する問題です。
というわけで、ネットワーク関連のテストをいくつか実行しました。
GitHubの記事を発見!
npmインストールエラーが発生した方の記事をGitHubで発見しました!
https://github.com/nodejs/node/issues/41056
要するに「wi-fi をオフにして、もう一度オンにしたら直った」
というものでした。
喜び勇んでwifiを再起動
↓
失敗
↓
ならばと、ルーターを再起動!
↓
失敗
ダメでした。
試行錯誤..
というわけで、以下続けて行った作業です。
- Node.jsの再インストール(最新版へアップデート)
- nodeではなくyarnインストールを試した(失敗)
- npmキャッシュクリア(npm cache clean –force)
nodeがおかしいんじゃね?と思って色々やっています。
yarn create next-app your-project-name --typescript
このようにyarnインストールも試してみましたが、やはり失敗に終わりました。
やはりネットワーク関連のエラーなので、nodeの設定や不具合では無いようです。
ESETのSSL/TLS設定を変更する
そういうことならば..
と、疑いの眼差しはESETへ。
ESETにはお世話になっているので悪く言うつもりはないのですが、
結構セキュリティ判定がキツすぎて不具合を引き起こすことがたまにあるため、今回も設定を見直してみました。
具体的には「SSL/TLS」関連の設定についてです。
バージョンによって設定の場所とか違うと思いますが、
「詳細設定」→「webとメール」→「SSL/TLS」で表示された
「SSL/TLSプロトコルフィルタリングを有効にする」
の箇所をオフにしてみました。
さて、変更してすぐに「いざ尋常にテストを..」とばかりに
npx create-next-app client --ts
を実行してはいけません!笑
私はやっちゃいましたが、どうやら再起動しないと設定が反映されないっぽいです。
再起動をしてください。
解決しました
そういうわけで、ESETの設定を変更後、再度
npx create-next-app client --ts
を実行してみたところ、うまくインストール成功しました!
長い(?)道のりでした。
この変更でダメだった人はプロトコルの方もオフにする必要があるかもしれません
※「HTTPプロトコルのチェックを有効にする」をオフにしています
まとめ
- create-next-appで発生した「ERR_SSL_CIPHER_OPERATION_FAILED」みたいなエラーはネットワーク状況に起因しているっぽいのでNode.jsのアップデートとかで解決しない
- wifiの再起動でうまくいかない場合は、セキュリティソフトの設定を疑う
- ESETの場合はhttpsのセキュリティをオフにすることで実行できるようになる
ということでセキュリティソフトの設定を変更することで解決しました。
とはいえ、SSL/TLSプロトコルフィルタリングを無効化することによるセキュリティリスクも当然ながらありますので、実行は自己責任にてお願いします。
みなさまの素敵なnextライフの一助になりましたら幸いです。
この記事へのコメントはこちら