SSL証明書の期限切れを防ぐ自動更新と確認手順
SSL証明書が切れるとブラウザに警告が出てサイトが見られなくなります。Let's Encrypt の自動更新の仕組み、更新が失敗する典型的な原因、残り日数を確認する手順を、サーバー移転や DNS 変更の注意点とあわせて説明します。
期限切れで起きること
SSL証明書(TLS証明書)には有効期限があり、期限を過ぎた瞬間から、ブラウザは「この接続ではプライバシーが保護されません」という全画面の警告を出します。閲覧者の多くはそこで離脱しますし、フォームからの申し込みや決済も止まります。検索順位にすぐ響くわけではありませんが、警告が出ている間の売上と信用の損失は取り返せません。
有効期限は年々短くなっています。無料の Let's Encrypt は発行から90日で、有料の証明書も2026年3月以降に発行されるものは最長200日に制限されました。「1年に1回、担当者が手で更新する」運用は成り立たなくなっており、自動更新を前提に組む必要があります。
自動更新の仕組み
Let's Encrypt をはじめとする ACME 対応の認証局では、サーバー側のソフトウェア(certbot など)が定期的に残り日数を見て、残り30日を切ると自動で再発行を申請します。再発行のたびに「そのドメインを本当に管理しているか」を確かめる認証が行われ、方法は主に2つあります。
HTTP-01 認証は、認証局がそのドメインの http://example.com/.well-known/acme-challenge/ に置かれたファイルを取りに来る方式です。DNS-01 認証は、指定された値を DNS の TXT レコードに置く方式で、ワイルドカード証明書ではこちらが必須です。
エックスサーバーやさくらのレンタルサーバのような共用レンタルサーバーでは、この一連の作業を事業者が代行しており、利用者は管理画面で無料SSLを有効にするだけで、更新も自動で行われます。自分でサーバーを管理している場合は、certbot のタイマー(systemd timer や cron)が動いているかを自分で確かめる必要があります。
自動更新が失敗する原因
自動更新は、失敗しても気づきにくいのが問題です。原因は大きく4つに分かれます。
1つ目は DNS の変更です。サーバーを移転して A レコードを新サーバーに向けると、旧サーバーの証明書は更新できなくなります。逆に、新サーバーで証明書を取る前に DNS を切り替えてしまい、その間に警告が出ることもあります。DNSレコード確認で、A レコードが実際に証明書を更新するサーバーを向いているかを確かめてください。
2つ目は、HTTP-01 認証のパスが塞がれていることです。.htaccess で https への転送や Basic認証、IP制限を入れると、/.well-known/acme-challenge/ への到達が妨げられる場合があります。この配下だけは制限の対象から外す記述が必要です。
3つ目は、CDN やプロキシの挟み込みです。CDN を経由させた状態で、CDN 側と元サーバー側のどちらが証明書を持つのかが曖昧になり、片方だけが期限切れになる例があります。
4つ目は、通知メールへの依存です。Let's Encrypt は2025年6月に有効期限の通知メールを終了しました。「メールが来ないから大丈夫」という判断はできません。
残り日数の確認手順
確認は月に1回、カレンダーに入れておくことをおすすめします。
まず SSL証明書チェック にドメインを入力し、有効期限と残り日数、発行者、証明書が www あり・なしの両方を含んでいるかを見ます。Let's Encrypt の証明書で残り日数が30日を切っているのに更新されていなければ、自動更新が失敗しています。
次に、サーバーの管理画面で SSL の設定状況と、エラーの通知が出ていないかを見ます。自分でサーバーを管理している場合は certbot renew --dry-run を実行して、認証が通るかを試します。
最後に、DNS が変わっていないかを DNSレコード確認 で見ます。移転の直後に警告が出る例が最も多いため、移転時の手順はサーバー移転時の DNS 切り替え手順にまとめています。
確認に使えるツール
- SSL証明書チェック: 有効期限、発行者、対応 TLS バージョンを確認します
- DNSレコード確認: A レコードと CAA レコードを確認します
- セキュリティヘッダー診断: https 化後の HSTS の設定状況を確認します