【RHEL on Azure】RHUI証明書期限切れでyum/dnf コマンドが使えない問題の対処

はじめに

Azure上のRHEL環境を長期間アップデートせずに運用していると、ある日突然以下のような問題が発生することがあります。

  • yum update / dnf update が失敗する
  • RHUIリポジトリに接続できない
  • repomd.xml の取得エラー
  • HTTP 400 エラー

本記事では、実際に遭遇した RHUI証明書期限切れ問題 とその解決方法について解説します。

なお、本ブログではRHEL8を対象としています。RHEL9などは適宜読み替えて下さい。

 

なぜ今この問題が重要なのか

現在のLinux環境では、1つの脆弱性がそのままシステム乗っ取りにつながるケースが増えています。
代表的な例を2つ紹介します。

 

 ①Linuxカーネル脆弱性(root奪取)

権限昇格系の脆弱性は継続的に発見されており、

  • 一般ユーザ権限から root権限を取得可能
  • 攻撃コード(PoC)が公開されるケースが多い

何が起きるか:

侵入済みユーザや侵害されたアプリからカーネルの脆弱性を利用してサーバを完全に乗っ取る。

結果「低権限侵入=即 root 奪取」される。

 

② OpenSSL脆弱性(通信の盗聴・改ざん)

TLS実装の脆弱性では、HTTPS通信の安全性が破られる可能性があり、中間者攻撃(MitM)が成立するケースがあります。

何が起きるか:

  • 通信内容の盗聴
  • APIリクエストの改ざん
  • 認証情報の漏洩

が発生し結果、安全なはずの通信が信用できなくなります。

 

結論

現在のLinux脆弱性は、単なる不具合ではなく、侵入・横展開・制御奪取の入口となります。

長期間アップデートしていない環境は、「脆弱」ではなく「侵害可能状態」と認識した方がよいです。

 

 

本記事との関係

今回の問題は単なるrepoエラーではなく、「アップデートができない状態」そのものが最大のリスクとなります。

そのため、この順番が非常に重要です。

  1. RHUI証明書を修正
  2. dnf/yumを復旧
  3. アップデート適用

 

発生事象

以下のようなエラーが発生します。

リポジトリへ接続した際に、HTTPステータスコード:400 エラーが出力されます。

Errors during downloading metadata for repository:
Status code: 400 for https://rhui4-1.microsoft.com/…
Cannot download repomd.xml

さらに下記に配置されている証明書を証明書確認コマンドで確認すると配置されている証明書が期限切れとなっていました。

/etc/pki/rhui/product/content-base.crt

証明書確認コマンド

openssl x509 -in /etc/pki/rhui/product/content-base.crt -noout -enddate

原因

RHUIクライアント証明書の期限切れ

 

RHUIの仕組み

RHELパッケージ

Azure RHUI(Microsoft管理)

クライアント証明書認証

yum / dnf

証明書が期限切れになると、リポジトリに接続不可となるため、yum / dnf が使用不可となります。

 

ハマりポイント

よくある誤解:

ネットワーク問題 → 通信はできているため問題ない。※通信自体が通らない場合は要調査
DNS問題 → 名前解決は問題ない。
Red Hat未登録 → RHUIの場合、Red Hatに登録していなくても問題ない。※BYOSの場合はRed Hatに登録必要

 

正解:RHUI証明書期限切れ

 

解決方法

以下のコマンドで復旧可能です。

yum update -y –disablerepo=’*‘ –enablerepo=’*microsoft-azure*’

なぜこれで直るのか

このコマンドの動作は以下のとおりRHUIのみ有効にしてRHUIパッケージのみをアップデートすることで証明書も更新されるため、アップデートコマンドがエラーとならなくなります。

  1. 全リポジトリ無効化
  2. Azure RHUIリポジトリのみ有効化
  3. RHUI関連パッケージ更新
  4. 証明書更新
  5. リポジトリ接続復旧

 

注意点

一見フルアップデートに見えますが、
実際に更新されるのは RHUI関連パッケージのみです。

更新されるもの

  • rhui-azure-rhel8 ※RHEL8の場合
  • RHUIクライアント関連

更新されないもの

  • kernel
  • glibc
  • bash
  • systemd
  • OpenSSL
  • その他OSパッケージ

理由

証明書期限切れ状態ではOSリポジトリのメタデータ取得に失敗し、 更新候補として認識されません。

結果、RHUIパッケージのみ更新されます。

 

復旧後の作業フロー

RHUI証明書の復旧は、あくまで アップデートを実施するための前提条件を整えた状態 です。
そのため、復旧後は以下の流れでパッチ適用を行います。

アップデート後問題が発生する可能性がありますので、必ずバックアップを取得しましょう。

 

① 事前確認

更新対象のパッケージを確認

dnf check-update

② アップデート

セキュリティ対策のみの場合

dnf update –security

機能更新を含む全体アップデートの場合

dnf update

今回のケースでは、RHUI復旧は、リポジトリと通信可能な状態となりますが、脆弱性は未解消の状況です。

つまり、RHUI復旧はゴールではなくスタートです。

 

まとめ

  • RHUI証明書期限切れで yum/dnf が使えなくなる
  • 原因はクライアント証明書
  • 指定コマンドで復旧可能
  • 実際はRHUI関連パッケージのみ更新

 

おわりに

「dnfが使えない状態」は単なる障害ではありません。
セキュリティ対策ができない状態です。

 

「dnfが使えなくなったらRHUIを疑う」
Azure × RHEL 環境では非常に重要なポイントです。

 

RHUI復旧は「障害対応」ではなく「セキュリティ対応の入口」です。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください