😽

PKI入門 ~証明書のローテーション~

2025/03/03に公開

この記事の目的

PKI(公開鍵基盤)を運用する上で知っておくと良いことをまとめる。
今回は証明書のローテーションについて書く。

証明書の最大TTL設定

サーバ証明書を利用するだけであれば、認証局で設定された最大のTTLの範囲で設定すれば良いが、PKIの管理者はルート証明書、中間証明書、サーバ証明書の最大TTLを設計する必要がある。

TTLを適当に設定した場合の問題点

中間証明書のTTLを1年で設定した場合、ローテーションは1年サイクルではない。実際はサーバ証明書(あるいは下位の中間認証局の証明書)のTTLを考慮する必要がある。

下図の様に、サーバ証明書の最大TTLが半年なら、サーバ証明書を普通に発行出来る期間は半年になる。

中間証明書のローテーションには十分な並行期間を設ける

サーバ証明書の発行に制約を課さない為には、中間証明書のローテーション時に並行期間を設ける必要がある。また、サーバ証明書のTTLと中間証明書のTTLのバランスが悪いと、中間認証局の運用が煩雑になるためバランスの良い設計を検討する必要がある。

ルート証明書のローテーションも十分な並行期間を設ける

ルート証明書も中間証明書のTTLを加味して十分な並行期間を設ける必要がある。
中間認証局が何層にも存在する場合も同様。認証局が多段で存在する程、TTL設定は難しくなる。

ローテーション運用で知っておくと良い技術

ルート証明書ローテーションの問題点

サーバ証明書や中間証明書のローテーションは、その証明書の主体者(subject)がある程度コントロール出来る。

  • サーバ証明書:
    1. 有効期限が近づいたら、サーバ証明書の主体者が上位の認証局へ新しい証明書を要求する。
  • 中間証明書:
    1. 有効期限が近づいたら、中間証明書の主体者が上位の認証局へ新しい証明書を要求する。
    2. 証明書を発行する場合は、新しい中間証明書に紐づく秘密鍵で署名するようにする。

一方、ルート証明書のローテーションは主体者(自分自身)だけでなく、エンドユーザのルート証明書登録状況を管理する必要性が生じる。エンドユーザが新しいルート証明書を信頼していない場合、そのルート証明書を用いて発行されたサーバ証明書は使えないためである。

全てのエンドユーザが新しいルート証明書を登録完了してからサーバ証明書を発行する必要があり、通常、エンドユーザは多数存在するため、ルート証明書のローテーションは不可に等しくなってしまう。

ルート証明書のローテーションにはクロスサイン証明書を使う

クロスサイン証明書はルート証明書のローテーションを可能にする技術。
クロスサイン証明書は1つの公開鍵に対して2つの証明書を作成する。同じ公開鍵に署名するため、2つの証明書の主体者(subject)は同じに出来る。これにより、エンドユーザが新旧ルート証明書のどちらか一方をインストールしていれば検証をパス出来る。

参考

以下のサイトで勉強しました。ありがとうございます。
https://developer.hashicorp.com/vault/tutorials/pki/pki-engine
https://zenn.dev/i10chu/articles/f27f0a2129707d

GitHubで編集を提案

Discussion