新型コロナウイルス感染症に関する当社対応について

SSL証明書の失効・無効化とは? | SSLサーバー証明書ならさくらインターネット

SSL証明書の失効・無効化とは?

SSL証明書の失効と聞いて、まず思い浮かべるのはSSL証明書の「有効期限切れ」という方が多いのではないでしょうか?しかしながら、有効期間内でもSSL証明書が突然使えなくなることがあります。今回はSSL証明書の失効・無効化についてご紹介します。

SSL証明書の失効・無効化とは?

失効した場合どうなるのか?

SSLサーバー証明書(以下、SSL証明書)は一定の有効期間が設けられています。有効期間が過ぎたSSL証明書を利用し続けた場合、安全ではないSSL証明書と見なされてサイトにアクセスしてもエラーが表示されます。一般的には有効期間終了による失効・無効化と言われており、英語ではexpired(有効期限切れ)、invalid(無効な)などと表現されます。

Chromeブラウザで有効期限切れのサイトにアクセスした場合 Chromeブラウザで有効期限切れのサイトにアクセスした場合、上記の画面が表示されます。

Firefoxブラウザでアクセスした場合 Firefoxブラウザでアクセスした場合は上記の画面が表示されます。

これらのように有効期間が過ぎるとサイトにアクセスできなくなってしまうため、普段から早めの更新を心がけることが大切です。有効期限切れを防ぐためのTipsを当コラムの『SSL証明書の有効期限切れを防ごう!防ぐためにできる5つのTipsとは? 』でも紹介していますので、ぜひご覧ください。

「有効期限切れによる失効」の他に、有効期間内でも失効する場合があります。有効期間内に失効することは「無効化」などとも呼ばれ、先程とは異なるエラーが表示されます。英語ではrevoked(無効化された)と表現されます。

Firefoxブラウザでアクセスした場合 Firefoxブラウザでアクセスした場合は上記の画面が表示されます。有効期限切れと同じように、原則としてサイトにはアクセスできなくなります。

有効期間内でも失効するケースとは?

1. サイト運営者側の原因

SSL証明書を発行するには、暗号化したデータを復号する「秘密鍵」という非常に重要なファイルが必要です。通常、秘密鍵はSSL証明書の申請者(サイト運営者)のサーバー内にのみ存在するファイルですが、サーバーへの不正アクセスなどにより情報漏洩が発生し、外部に流出(危殆化)してしまうことがあります。

認証局ではSSL証明書と対になる秘密鍵の流出を検知した場合、CPS(Certification Practice Statement:認証局運用規定)により、24時間以内に対象のSSL証明書を失効しなければなりません。

  • ※CPSは各認証局で公式サイトに掲載しているので、気になる方は確認してみましょう。

検知が平日であれば、失効処理が実施される前に連絡が来るかもしれません。しかし、平日の夜や土日、連休などの場合はサポートセンターからの連絡が追いつかず、知らない間に失効処理が実施されてしまう可能性も十分にあります。

「なんで24時間以内なの?!早すぎるでしょ!!」と思う方も多いと思いますが、秘密鍵が流出してしまうと「ドメインのなりすまし」が可能になるため、フィッシングなどの詐欺被害にまで発展してしまう恐れがあります。フィッシングについては、当コラムの『詐欺サイトもSSL化が当たり前?!フィッシング詐欺被害を回避する4つの対策とは?』でも紹介していますので、ぜひご覧ください。

また、古い暗号スイートを利用している場合、暗号化通信が悪意のある第三者によって解読され、IDやパスワードのリストを作成・流出してしまう可能性もあります。これらのように、秘密鍵が流出してしまった場合は早期にSSL証明書を失効させる必要があります。

2. 認証局側の原因

秘密鍵はCSR(Certificate Signing Request:署名リクエスト)を作成した人だけが持っているべきものであり、その流出はサイト運営者側の責任です。しかし、認証局側の原因によってSSL証明書の失効が発生する場合もあります。

つい先日、無料でSSL証明書を発行している認証局「Let’s Encrypt」が約300万件のSSL証明書を失効しました。原因は「発行時の認証プロセス不備」であり、このような場合は5日以内に失効することが義務づけられています。この場合も認証局が一方的にSSL証明書を無効化してしまうため、「気づいたらサイトのSSL証明書が無効になっていた」「サイトにアクセスできなくなっていた」という可能性もゼロではありません。

その他にも段階的に「24時間以内」「5日以内」「合理的な期間内」に失効処理が実施されるケースも規定されています。過去には「認証局側のシステムが不正アクセス被害を受けて秘密鍵が流出した」や「ドメインや組織の認証方法に不備があり、なりすましによって悪意のある第三者が不正にSSL証明書を発行できていた」といった理由で失効処理が行われたこともありました。

有効・失効の状態を管理する仕組みとは?

SSL証明書は文字データだけのテキストファイルであり、発行後に内容が更新されることはありません。そのため、現在SSL証明書が有効なのか?無効なのか?という状態は、SSL証明書単体だけで判別することはできないのです。

有効・失効の状態を判別するために、SSL証明書にはCRL(Certificate Revocation List:証明書失効リスト)とOCSP(Online Certificate Status Protocol:オンライン証明書状態プロトコル)という仕組みがあります。

どちらもインターネット上に失効されたSSL証明書のリスト(もしくはステータスのリスト)がアップロードされており、誰でも自由に参照できるようになっています。SSL証明書にはCRLとOCSPの場所(URL)が記載されており、ブラウザ側がこのリストを参照することで、失効情報を確認することができます。詳しくは当コラムの『サイト制作/管理者必見!SSL化がサイトの障害原因だった!?SSL証明書の思わぬ落とし穴とは?』で紹介していますので、興味のある方はぜひご覧ください。

実は、このリスト参照・確認は「任意」であり、リストを参照しないブラウザも存在します。そのため、認証局側で失効処理を実施したとしても、ブラウザ側が失効状態を確認せずにそのままサイトを閲覧できてしまうことがあるのです。

CRLやOCSPは、サイトに接続する”前”にリストを参照する必要があるため、サイト閲覧時のパフォーマンス低下を招きます。Googleの検索結果のリンクをクリックして、サイトが表示される前の真っ白な時間が長くなるというとイメージしやすいかもしれません。

このパフォーマンス低下を回避するためにChromeでは独自の確認手段を使っています。CRLsetsという仕組みであり、CRLやOCSPと異なる点は、失効となったSSL証明書から「実際にセキュリティ的に問題がある」と判断されたSSL証明書だけを選択して失効リストに反映する、という点です。つまり、厳密にCRLやOCSPと同じものが使われているわけではないため、同じような失効状態は反映されません。

この仕様の差異により、実際にSSL証明書が失効しているのか?がわかりにくいという問題があります。例えば、さくらのSSLのカスタマーサポートから「お客様のSSL証明書の失効処理を行いました」と連絡がきて、慌てて自身のサイトを確認しても普通に閲覧できた、という現象が起こりえます。

有効・失効の状態を確認したい場合は、キャッシュを削除したFirefoxブラウザを使うと間違いがありません。ただし、Firefoxでもローカルに6時間程度OCSPの確認結果をキャッシュするため、以前にアクセスしたことがあるサイトを確認するときは注意が必要です。上級者向けですが、opensslを利用してコマンドラインから確認するのが最も確実な方法です。

SSL証明書の有効性を監視する方法

サーバー管理者向けのやや難しい方法になりますが、opensslを利用するとOCSP情報を参照することができます。シェルスクリプトなどと組み合わせて定期的にサーバーのSSL証明書を取得してOCSPレスポンダのURLを抽出し、失効情報を確認することで真にそのSSL証明書が有効か?を確認することができます。有償の監視サービスなどでSSL証明書の状態を監視できるソリューションもあるので、正常性が強く求められるWebサービスなどを運営している場合は検討してみると良いでしょう。

失効されてしまった場合は?

もしSSL証明書が失効されてしまった場合、最も確実に、且つ出来るだけ早く復旧するためには即時発行のSSL証明書(DV証明書など)を購入して再設定するのがわかりやすい方法です。

さくらのレンタルサーバを利用している場合は無料SSL機能が利用できるため、一度設定(失効したSSL証明書)を削除してから無料SSLを設定すると最速でサイトを復旧することができます。無料SSL機能はDV証明書を利用しているため、要件などで組織認証型のSSL証明書が必要な場合は改めて購入が必要となります。

ただし、前述のように秘密鍵が流出して認証局に失効された場合は、サーバーが不正アクセスなどの被害を受けている可能性があります。まずはサーバーの正常性確認や、パスワード変更などを行ってから再設定することをおすすめします。

SSL証明書の失効は頻繁に起きることではありませんが、不測の事態にも対処できるように普段からマニュアルなどを整備しておくのも良いでしょう。

こちらの記事もあわせておすすめ!

本記事中でも紹介しましたが、失効処理が原因でサイトが閲覧できなくなる障害にフォーカスした『サイト制作/管理者必見!SSL化がサイトの障害原因だった!?SSL証明書の思わぬ落とし穴とは? 』や、失効処理された場合のブラウザエラーを解説した『SSL設定時に表示されるエラーや警告の原因を徹底解明!~ブラウザエラー編~ 』もおすすめです。

データ読み込み中...