「この接続ではプライバシーが保護されません」。サイトのSSL証明書の期限が切れると、訪問者にはこう表示されます。ほとんどの人は離脱し、検索エンジンもお客様もサイトへの信頼を失います。そして、これは最も防ぎやすい障害のひとつでもあります。
SSL証明書の役割
証明書は、訪問者が本当にあなたのサーバーと通信していることを証明し、https://の背後にある暗号化を有効にします。証明書の有効期間には限りがあります。多くのホスティングが使っているLet's Encryptの証明書の有効期間は90日で、それ以外は1年以下のものがほとんどです。期限を過ぎると、ブラウザは信頼しなくなります。
誰にも気づかれずに証明書が失効する理由
- 自動更新が動かなくなった。 サーバー設定の変更、サイトの移転、ディスクの空き容量不足、ファイアウォールのルール、DNSレコードの変更などで、更新の処理が気づかないうちに失敗することがあります。
- 手動で入れた証明書が忘れられた。 一度購入して手動でインストールした証明書には、誰かが実際に読むリマインダーが必要です。
- 忘れられたサブドメイン。 メインサイトは更新されても、
shop.やapi.は、誰も管理していない別の証明書で動いていることがあります。 - 設定した担当者が退職した。
期限切れの証明書を直す方法
- 現状を確認する。 無料のSSL証明書チェッカーで、発行元、有効期限、証明書が対象とするドメイン名、チェーンが完全かどうかを確認できます。
- 更新する。 マネージドホスティングなら、コントロールパネルのSSLまたは「Let's Encrypt」の項目を探し、更新または再発行を押します。自分のサーバーなら、クライアントの更新コマンド(たとえば
certbot renew)を実行し、出力にエラーがないか読みます。 - ウェブサーバーを再読み込みする。 新しい証明書が使われるようにします(
nginx -s reload、またはApacheの再起動)。 - 外部から再確認する。 別のネットワークから確認し、使用しているすべてのサブドメインも確認します。
- 更新に失敗する場合は、エラーを確認します。よくある原因は、別のサーバーを指しているDNSレコード、ブロックされた80番または443番ポート、失敗を繰り返した後のレート制限です。
二度と起こさないために
- 更新を自動化し、動いていると信じるのではなく、実際に動くかをテストする。
- 有効期限を外部から監視する。 訪問者が実際に受け取る証明書を読み取る監視なら、更新の失敗、忘れられたサブドメイン、誤った証明書を検出できます。ServerMonitorは、期限の数週間前と、証明書が更新されたときにお知らせします。
- 各証明書がどこにあるか、誰が責任者かを記録しておく。
- 認証局に登録している連絡先メールを最新に保つ。警告が誰かに届くようにします。
期限切れの証明書は、小さな問題なのに大きく見えます。直すのは通常数分で済みます。被害が出るのは、誰かが気づくまでの数時間です。だからこそ、誰よりも先に知ることが目標です。