【応用情報】「CRL(証明書失効リスト)」とは?期限切れとは違う”ブラックリスト”の仕組み

情報処理技術者試験の過去問を解いていると、「CRL(証明書失効リスト)」 という言葉が出てきます。

「証明書の有効期限が切れた話でしょ?」 と思ったら大間違い。実はこれ、「有効期限内なのに、緊急停止された証明書」 の話なんです。

WebディレクターやPMとして仕事をしていても、滅多にお目にかかることのない「失効(Revocation)」。
今回は、教科書的な説明ではなく、現場の事故(インシデント)をイメージしながら、その仕組みを分かりやすく解説します。

目次
このサイトの運営者

山脇 弘成(SSAITS代表)

PMP®有資格者・Webプロジェクトマネージャー
大手メディアや官公庁のWebプロジェクト実績多数。
「技術」だけでなく「対話」を重視し、御社の「ほんとは、こうしたかった」を形にします。

CRLとは何か?一言でいうと「ブラックリスト」

CRL(Certificate Revocation List)とは、日本語で「証明書失効リスト」
一言で言えば、「有効期限は残っているけれど、危険だから使ってはいけない証明書のブラックリスト」です。

CRLとは?期限切れと失効の違い

「期限切れ」と「失効」の違い

ここが一番の勘違いポイントです。運転免許証で例えると分かりやすいでしょう。

  • 有効期限切れ(Expiration)
    • 状況: 免許の更新を忘れて、日付が過ぎた状態。
    • 原因: ただのうっかり。平和な状態。
  • 失効(Revocation)
    • 状況: 有効期限はあと3年あるのに、重大な違反をして「免許取り消し処分」になった状態。
    • 原因: 事故や事件。緊急事態。

Webの世界でも同じです。
「更新忘れ」ではなく、「鍵が盗まれるなどの事件が起きたので、緊急で無効化した」状態を「失効」と呼び、そのリスト(取り消し処分者リスト)がCRLなのです。

そもそも「証明書」と「秘密鍵」のおさらい

「証明書」と「秘密鍵」のおさらい

なぜ「失効」なんて手続きが必要なのでしょうか?

WebサイトのHTTPS通信(SSL/TLS)では、「サーバー証明書」「秘密鍵」というセットを使います。

サーバー証明書と秘密鍵
  • サーバー証明書: Webサイトの身分証明書(公開されている)。
  • 秘密鍵: その証明書の持ち主であることの証(サーバーの中に厳重に隠してある)。

もし、この「秘密鍵」が誰かに盗まれたらどうなるでしょうか?
犯人は、盗んだ鍵を使って、あなたの会社の「なりすましサイト(フィッシングサイト)」を簡単に作れてしまいます。
ユーザーは「鍵が合っているから本物だ」と騙され、個人情報を抜かれてしまいます。

だからこそ、「有効期限まであと1年あるから……」なんて悠長なことは言っていられません。
「その証明書はもう信用するな!鍵が盗まれた!」と世界中に宣言し、即座に無効化する必要があるのです。

CRLにリストアップされるのはどんなとき?

では、具体的にどんな「やらかし」があると、CRL(ブラックリスト)入りしてしまうのでしょうか?

CRLにリストアップされるのはどんなとき?

ケース①:サーバーへの不正アクセス(ハッキング)

外部からの攻撃によりWebサーバーに侵入され、秘密鍵のファイルがコピーされて盗まれてしまった場合。即座に失効申請が必要です。

ケース②:運用ミス(Gitへの誤アップロード)

開発現場でよくある事故です。
エンジニアが間違えて、秘密鍵を含んだソースコードをGitHubなどの公開リポジトリにアップロードしてしまった場合。
一瞬でも公開された鍵は「盗まれた」とみなすのがセキュリティの鉄則です。

ケース③:申請内容の虚偽

証明書を発行する際、会社名や住所を偽っていたことが後からバレた場合。認証局(CA)の権限で強制的に失効させられます。

ブラウザはどうやって「ブラックリスト」を見ている?

ここが試験によく出るポイントです。
私たちがWebサイトを見るとき、ブラウザは裏側でこっそりとCRLをチェックしています。

具体的なチェックの流れ

  1. アクセス: あなたがWebサイトにアクセスする。
  2. 提示: Webサーバーが「サーバー証明書」をブラウザに渡す。
  3. 確認: ブラウザは証明書の中身を見ます。そこには、実はこう書いてあるのです。「もしこの証明書が怪しいと思ったら、このURLのブラックリスト(CRL)を確認してね」 CRL配布点: http://crl.example-ca.com/list.crl
  4. 照合: ブラウザはそのURLからリストをダウンロードし、「今見てる証明書が載っていないか?」 を確認します。
  5. 判定:
    • 載っていなければアクセスOK。
    • 載っていたら「危険なサイト」として警告画面を表示してブロック。

CRLリストの中身は「シリアル番号」だけ!

このCRLというリスト、中身はテキストファイルのようなシンプルなものです。
しかし、そこには「〇〇株式会社の証明書」といった名前は書いてありません。

書かれているのは、「失効した証明書のシリアル番号(製造番号)」だけです。

=== 失効リスト ===
1. シリアル番号: 1234-5678  (失効日: 2024/01/01)
2. シリアル番号: 9999-0000  (失効日: 2024/03/15)
...

ブラウザは、手元の証明書に書いてあるシリアル番号と、このリストを突き合わせて、「あ! この番号、ブラックリストに入ってる! アウト!」 と判断しているのです。

まとめ

  • CRLとは: 事件を起こした証明書の「ブラックリスト」。
  • 載る理由: 秘密鍵の漏洩や盗難など、緊急停止が必要なとき。
  • 仕組み: ブラウザがリストを参照し、「シリアル番号」 が載っていたら通信を遮断する。

「Webディレクターとして長年やってるけど、失効なんて見たことないよ」
それは、あなたの現場が平和で、秘密鍵の管理がしっかりできている証拠です。

でも、万が一「鍵をGithubに上げちゃいました!」なんて報告が来たときは、すぐに「CRLへの登録(失効申請)」を思い出してくださいね!

PRプロジェクト管理、まだExcelで消耗していませんか?

複雑なタスク管理やガントチャート作成も、「Backlog」なら直感的に一元管理できます。エンジニアから営業職まで誰でも使いやすい、Web制作・開発現場の必須ツールです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次