はじめに
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エラーではなく、「アップデートができない状態」そのものが最大のリスクとなります。
そのため、この順番が非常に重要です。
- RHUI証明書を修正
- dnf/yumを復旧
- アップデート適用
発生事象
以下のようなエラーが発生します。
リポジトリへ接続した際に、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パッケージのみをアップデートすることで証明書も更新されるため、アップデートコマンドがエラーとならなくなります。
- 全リポジトリ無効化
- Azure RHUIリポジトリのみ有効化
- RHUI関連パッケージ更新
- 証明書更新
- リポジトリ接続復旧
注意点
一見フルアップデートに見えますが、
実際に更新されるのは 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復旧は「障害対応」ではなく「セキュリティ対応の入口」です。

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