「この接続ではプライバシーが保護されません」。サイトのSSL証明書の期限が切れると、訪問者にはこう表示されます。ほとんどの人は離脱し、検索エンジンもお客様もサイトへの信頼を失います。そして、これは最も防ぎやすい障害のひとつでもあります。

SSL証明書の役割

証明書は、訪問者が本当にあなたのサーバーと通信していることを証明し、https://の背後にある暗号化を有効にします。証明書の有効期間には限りがあります。多くのホスティングが使っているLet's Encryptの証明書の有効期間は90日で、それ以外は1年以下のものがほとんどです。期限を過ぎると、ブラウザは信頼しなくなります。

誰にも気づかれずに証明書が失効する理由

  • 自動更新が動かなくなった。 サーバー設定の変更、サイトの移転、ディスクの空き容量不足、ファイアウォールのルール、DNSレコードの変更などで、更新の処理が気づかないうちに失敗することがあります。
  • 手動で入れた証明書が忘れられた。 一度購入して手動でインストールした証明書には、誰かが実際に読むリマインダーが必要です。
  • 忘れられたサブドメイン。 メインサイトは更新されても、shop.やapi.は、誰も管理していない別の証明書で動いていることがあります。
  • 設定した担当者が退職した。

期限切れの証明書を直す方法

  1. 現状を確認する。 無料のSSL証明書チェッカーで、発行元、有効期限、証明書が対象とするドメイン名、チェーンが完全かどうかを確認できます。
  2. 更新する。 マネージドホスティングなら、コントロールパネルのSSLまたは「Let's Encrypt」の項目を探し、更新または再発行を押します。自分のサーバーなら、クライアントの更新コマンド(たとえばcertbot renew)を実行し、出力にエラーがないか読みます。
  3. ウェブサーバーを再読み込みする。 新しい証明書が使われるようにします(nginx -s reload、またはApacheの再起動)。
  4. 外部から再確認する。 別のネットワークから確認し、使用しているすべてのサブドメインも確認します。
  5. 更新に失敗する場合は、エラーを確認します。よくある原因は、別のサーバーを指しているDNSレコード、ブロックされた80番または443番ポート、失敗を繰り返した後のレート制限です。

二度と起こさないために

  • 更新を自動化し、動いていると信じるのではなく、実際に動くかをテストする。
  • 有効期限を外部から監視する。 訪問者が実際に受け取る証明書を読み取る監視なら、更新の失敗、忘れられたサブドメイン、誤った証明書を検出できます。ServerMonitorは、期限の数週間前と、証明書が更新されたときにお知らせします。
  • 各証明書がどこにあるか、誰が責任者かを記録しておく。
  • 認証局に登録している連絡先メールを最新に保つ。警告が誰かに届くようにします。

期限切れの証明書は、小さな問題なのに大きく見えます。直すのは通常数分で済みます。被害が出るのは、誰かが気づくまでの数時間です。だからこそ、誰よりも先に知ることが目標です。