エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

  • Lamiyi
  • 0
  • rhahw
エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

新しいバージョンの macOS でコマンドを実行しようとすると、error:0308010C:digital envelope routines unsupported というメッセージが表示される場合があります。

OpenSSL 3.0以降、OpenSSLはアルゴリズムにいくつかの重要な変更を導入し、MD4アルゴリズムをOpenSSL 3.0のレガシープロバイダに移行しました。OpenSSLのプロバイダとは、必要に応じてアプリケーションに追加できるアルゴリズムの集合です。レガシープロバイダには、時代遅れで安全性が低いとみなされるアルゴリズムが含まれており、デフォルトでは読み込まれません。

このエラーを解決する最も簡単な方法は、コマンドを変更して、従来のアルゴリズムのサポートを戻すことです。


エラー0308010Cを修正


ステップ1

この例では、openssl pkcs12 コマンドを使用して、OpenSSL 3.1.4 を実行している macOS Sonoma で PKCS#12 ファイルを PEM ファイルに解析します。

例:
openssl pkcs12 -in apns.p12 -out apns.pem -nodes

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

これにより、次のエラーが発生します。

キーと証明書の出力エラー
409CEAE301000000 :エラー:0308010C:デジタル エンベロープ ルーチン:inner_evp_generic_ fetch: サポートされていません:crypto/evp/evp_fetch.c:341:グローバル デフォルト ライブラリ コンテキスト、アルゴリズム (RC2-40-CBC: 0)、プロパティ ()

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ2

このエラーを解決するには、-legacy オプションを使用して openssl の従来のアルゴリズムのサポートを復元できます。

例:
openssl pkcs12 -in apns.p12 -out apns. pem -nodes -legacy

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていませんエラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

永久的な修正

必要に応じて、OpenSSL でレガシープロバイダーを永続的にロードすることもできます。手順は次のとおりです。

ステップ 1
次のコマンドを使用して、どのプロバイダーがロードされているかを確認します...

openssl リスト -プロバイダー

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ 2:
openssl 構成ファイルが配置されているディレクトリを見つけます...

openssl バージョン -d

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ3:
前のコマンドで見つかったディレクトリ情報を使用して、設定ファイルを編集用に開きます。プロンプトが表示されたら、管理者パスワードを入力します。

sudo nano /opt/homebrew/etc/openssl@3/openssl.cnf

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ 4
[provider_sect] の下に次の行を追加します。

レガシー = legacy_sect

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ5
[default_sect]の下の「activate = 1」行の#記号を削除してコメントを解除します。

[default_sect]
アクティブ化 = 1

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ6
その下に次の新しいセクションを追加します

[legacy_sect]
アクティブ化 = 1

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ 7:
Ctrl+X を押してファイルを終了し、Y を押して変更を保存します。

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

書き込むファイル名を確認するには、Returnを押します。

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ 8 次の
コマンドを使用して、レガシー プロバイダーがロードされていることを確認できます。

openssl リスト -プロバイダー

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません

ステップ 9
最後に、最初のコマンドをもう一度試して、error:0308010C:digital envelope routines unsupported がなくなったことを確認します。

エラー0308010Cの修正方法 デジタルエンベロープルーチンがサポートされていません