情報処理技術者試験の過去問を解いていると、「CRL(証明書失効リスト)」 という言葉が出てきます。
「証明書の有効期限が切れた話でしょ?」 と思ったら大間違い。実はこれ、「有効期限内なのに、緊急停止された証明書」 の話なんです。
WebディレクターやPMとして仕事をしていても、滅多にお目にかかることのない「失効(Revocation)」。
今回は、教科書的な説明ではなく、現場の事故(インシデント)をイメージしながら、その仕組みを分かりやすく解説します。
CRLとは何か?一言でいうと「ブラックリスト」
CRL(Certificate Revocation List)とは、日本語で「証明書失効リスト」。
一言で言えば、「有効期限は残っているけれど、危険だから使ってはいけない証明書のブラックリスト」です。

「期限切れ」と「失効」の違い
ここが一番の勘違いポイントです。運転免許証で例えると分かりやすいでしょう。
- 有効期限切れ(Expiration)
- 状況: 免許の更新を忘れて、日付が過ぎた状態。
- 原因: ただのうっかり。平和な状態。
- 失効(Revocation)
- 状況: 有効期限はあと3年あるのに、重大な違反をして「免許取り消し処分」になった状態。
- 原因: 事故や事件。緊急事態。
Webの世界でも同じです。
「更新忘れ」ではなく、「鍵が盗まれるなどの事件が起きたので、緊急で無効化した」状態を「失効」と呼び、そのリスト(取り消し処分者リスト)がCRLなのです。
そもそも「証明書」と「秘密鍵」のおさらい

なぜ「失効」なんて手続きが必要なのでしょうか?
WebサイトのHTTPS通信(SSL/TLS)では、「サーバー証明書」と「秘密鍵」というセットを使います。
- サーバー証明書: Webサイトの身分証明書(公開されている)。
- 秘密鍵: その証明書の持ち主であることの証(サーバーの中に厳重に隠してある)。
もし、この「秘密鍵」が誰かに盗まれたらどうなるでしょうか?
犯人は、盗んだ鍵を使って、あなたの会社の「なりすましサイト(フィッシングサイト)」を簡単に作れてしまいます。
ユーザーは「鍵が合っているから本物だ」と騙され、個人情報を抜かれてしまいます。
だからこそ、「有効期限まであと1年あるから……」なんて悠長なことは言っていられません。
「その証明書はもう信用するな!鍵が盗まれた!」と世界中に宣言し、即座に無効化する必要があるのです。
CRLにリストアップされるのはどんなとき?
では、具体的にどんな「やらかし」があると、CRL(ブラックリスト)入りしてしまうのでしょうか?

ケース①:サーバーへの不正アクセス(ハッキング)
外部からの攻撃によりWebサーバーに侵入され、秘密鍵のファイルがコピーされて盗まれてしまった場合。即座に失効申請が必要です。
ケース②:運用ミス(Gitへの誤アップロード)
開発現場でよくある事故です。
エンジニアが間違えて、秘密鍵を含んだソースコードをGitHubなどの公開リポジトリにアップロードしてしまった場合。
一瞬でも公開された鍵は「盗まれた」とみなすのがセキュリティの鉄則です。
ケース③:申請内容の虚偽
証明書を発行する際、会社名や住所を偽っていたことが後からバレた場合。認証局(CA)の権限で強制的に失効させられます。
ブラウザはどうやって「ブラックリスト」を見ている?
ここが試験によく出るポイントです。
私たちがWebサイトを見るとき、ブラウザは裏側でこっそりとCRLをチェックしています。
具体的なチェックの流れ
- アクセス: あなたがWebサイトにアクセスする。
- 提示: Webサーバーが「サーバー証明書」をブラウザに渡す。
- 確認: ブラウザは証明書の中身を見ます。そこには、実はこう書いてあるのです。「もしこの証明書が怪しいと思ったら、このURLのブラックリスト(CRL)を確認してね」 CRL配布点: http://crl.example-ca.com/list.crl
- 照合: ブラウザはそのURLからリストをダウンロードし、「今見てる証明書が載っていないか?」 を確認します。
- 判定:
- 載っていなければアクセスOK。
- 載っていたら「危険なサイト」として警告画面を表示してブロック。
CRLリストの中身は「シリアル番号」だけ!
このCRLというリスト、中身はテキストファイルのようなシンプルなものです。
しかし、そこには「〇〇株式会社の証明書」といった名前は書いてありません。
書かれているのは、「失効した証明書のシリアル番号(製造番号)」だけです。
=== 失効リスト ===
1. シリアル番号: 1234-5678 (失効日: 2024/01/01)
2. シリアル番号: 9999-0000 (失効日: 2024/03/15)
...
ブラウザは、手元の証明書に書いてあるシリアル番号と、このリストを突き合わせて、「あ! この番号、ブラックリストに入ってる! アウト!」 と判断しているのです。
まとめ
- CRLとは: 事件を起こした証明書の「ブラックリスト」。
- 載る理由: 秘密鍵の漏洩や盗難など、緊急停止が必要なとき。
- 仕組み: ブラウザがリストを参照し、「シリアル番号」 が載っていたら通信を遮断する。
「Webディレクターとして長年やってるけど、失効なんて見たことないよ」
それは、あなたの現場が平和で、秘密鍵の管理がしっかりできている証拠です。
でも、万が一「鍵をGithubに上げちゃいました!」なんて報告が来たときは、すぐに「CRLへの登録(失効申請)」を思い出してくださいね!


