ホームページ >ウェブフロントエンド >jsチュートリアル >エラー メッセージ「エラー:デジタル エンベロープ ルーチン::サポートされていません」から学んだこと
フルスタック アプリケーションで作業しているときに、この暗号エラーに遭遇しました。StackOverflow と ChatGPT で検索したところ、Node.js による OpenSSL の処理の変更によって発生したものであることがわかりました。暗号化操作、つまり、アプリケーションが、Node.js にバンドルされている現在の OpenSSL バージョンではサポートされなくなった暗号化アルゴリズムまたは機能を使用しようとしていました。したがって、エラーは実際には、SSL の古いバージョンに依存してダウンロードした依存関係から発生しました。
そこで、このエラーを修正するには:
最初に、node_modules フォルダーを (フロントエンドから) 削除しようとしました
ワークスペース/フォルダー)、
を再インストールするために npm install を再実行します。
依存関係。ただし、これでは問題は解決されませんでした。
その後、非推奨の
を切り替える必要があることがわかりました。
互換性の問題を解決するために、アルゴリズムをレガシー モードに変更します。
そして、非推奨のアルゴリズムについてネットサーフィンしているときに、気になった
で学んだ PGP (Pretty Good Privacy) の SHA-1 を思い出しました
大学の前期課程でコンピュータネットワークを専攻。 SHA-1 はハッシュ化
のため、非推奨のアルゴリズムになりました。
セキュリティの問題。
そしてトピックの続きですが、私のアプリは下位互換性も必要とする非クリティカルなアプリケーションであったため、一時的な回避策として --openssl-legacy-provider フラグを使用し続けることにしました。これが役立つためです。発生する可能性のあるエラーについてさらに詳しく知り、原因とその解決方法についてさらに詳しく知り、プロセス中に遭遇する可能性のあるその他のさまざまな用語についても学びます。
--openssl-legacy-provider は、Node.js に OpenSSL のレガシー プロバイダーを利用するように指示することで、レガシー アルゴリズムの使用を有効にし、それによってそのような暗号化機能のサポートを復元します。
それで、ターミナルで次のように始めました:
npm update npm audit fix — force
次に、package.json ファイルに次の変更を加えました:
前:
"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }
後:
"scripts": { "start": "react-scripts --openssl-legacy-provider start", "build": "react-scripts --openssl-legacy-provider build", "test": "react-scripts test", "eject": "react-scripts eject" }
これでようやく問題が解決しました。この問題を自分で解決しようとするだけで、npm の詳細な機能、バージョンの管理方法、非推奨のアルゴリズムや従来のアルゴリズムなどについて学習することで、さまざまなことを学ぶことができてとても気に入りました。 .
以上がエラー メッセージ「エラー:デジタル エンベロープ ルーチン::サポートされていません」から学んだことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。