テックブログ

RHEL9のOpenSSLでSHA-1署名を有効化する

こんにちは、TUです。
RHEL9にリプレース後、SHA-1署名が使えなくなった際の対応を記録しておきます。

実施コマンドと発生したエラー

通常、SSL証明書の署名はSHA-2(SHA-256)で署名されていますが、古い環境の再現の為、RHEL9上でSHA-1署名で自己証明書を発行しようとしたところ、CSR発行の際に以下のエラーが発生しました。

SHA-1署名は相当古い規格となりますので、当然と言えば当然となる動きなのですが、脆弱性がある事は了承の上、今回はSHA-1署名を有効化したいと思います。

RHEL9ドキュメントから解消方法を確認

解消方法は非常に簡単で、RHEL9のドキュメントに記載がある通りになります。

https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/9.1_release_notes/enhancement_security#BZ-2060510

OpenSSL の新しいオプションは、署名で SHA-1 をサポートします

RHEL 9 の OpenSSL 3.0.0 は、デフォルトで署名の作成と検証で SHA-1 をサポートしていません (SHA-1 鍵派生関数 (KDF) とハッシュベースのメッセージ認証コード (HMAC) はサポートされています)。ただし、引き続き署名に SHA-1 を使用する RHEL 8 システムとの後方互換性をサポートするために、新しい設定オプション rh-allow-sha1-signatures が RHEL 9 に導入されました。このオプションが openssl.cnf の alg_section で有効になっている場合、SHA-1 署名の作成と検証が許可されます。

RHEL9からは、デフォルトではSHA-1署名はサポートしない為、オプションとして明示的に有効にする必要がありそうです

対応記録

実際にオプションを指定し、SHA-1署名を有効にしてみます。
バックアップを取得して設定していきます。

openssl_initセクションに「alg_section = algsec」を追記し・・・

末尾にalgsecセクションを追記した上で、「rh-allow-sha1-signatures = yes」を指定します。

これで終わりです!非常に簡単ですね。

エラー無く秘密鍵からCSRが発行出来た事も確認できました。

最後に

という訳で、RHEL9のSHA-1署名を有効にしてみました。
Almalinux9,RockyLinux9でも同様にSHA-1署名は有効に出来る筈ですので、もしどうしても古い規格での署名・検証が必要な際は、”脆弱性がある事を了承した上で”、お試しいただければと思います。

最後までお読みいただき、ありがとうございました!

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください