
SSL証明書の期限切れを防ぐ|更新と監視で慌てない仕組み
朝、いつものようにサイトを開いたら、ブラウザが真っ赤な警告画面。 「この接続ではプライバシーが保護されません」——よく見ると、SSL証明書の有効期限が、昨日で切れていた。
問い合わせの電話が鳴り始める。お客さんはサイトに入れない。原因はすぐ分かるのに、更新作業や反映の確認に時間がかかって、その間ずっと冷や汗が止まらない。 こんな経験、ありませんか。あるいは「次の更新、いつだっけ」と頭の片隅で不安を抱えている人も多いと思います。
これは担当者の注意力の問題ではなく、「気づける仕組み」がなかっただけです。期限は静かに近づき、誰も教えてくれません。だからこそ、「忘れても気づける」仕組みを置いておけば大丈夫です。全部を一度にやらなくてOK。現場で回る最小から始めましょう。
結論:①今ある証明書と期限を1枚に棚卸し、②自動更新できるものは自動化、③自動化できないものは期限前に必ず鳴る監視を置く。この順で、まずメインのFQDNを1つ確認するところから。
構成(自前/LB/CDN/WAF)や証明書の種類(無料・有料、ドメイン認証・企業認証、ワイルドカード・SAN)で最適解は変わります。本文を自分の環境に読み替えつつ、細部は検証環境や公式情報で確認してください。
なぜ証明書は「うっかり」切れるのか
- 有効期間が短くなり(90日/1年など)、更新頻度が上がった
- 通知が退職者アドレスや見られていない共有箱に届く
- 管理者・更新方法が不明なまま放置されたサブドメイン・社内ホストがある
- 自動更新がサーバー移行やジョブ停止で静かに止まっている
どれも「気をつける」では防ぎにくい話です。だから仕組みで受け止めます。
まず棚卸し:自分が抱えている証明書を1枚に出す

まず「どの証明書を抱えているか」を一枚に。最低テンプレート(CSV)はこれで十分です。
- FQDN、用途、有効期限、設置場所(Web/LB/CDN/WAF/社内)、更新方法(自動/手動/ACM等)、監視URL(または監視ID)、担当(チーム名)
例)
FQDN,用途,有効期限,設置場所,更新方法,監視URL,担当
www.example.jp,公開本番,2026-08-12,CDN→LB→Web,ACME自動(DNS-01),https://status.example.jp/checks/123,Web運用チーム
intra.example.jp,社内ツール,2026-10-01,Web,手動(OV),-,情シス
期限の取得は、環境により異なりますが例として:
- openssl(有効期限の表示)
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -enddate
- 監視プラグイン(check_ssl_cert の例・使い方は公式情報で確認)
check_ssl_cert -H example.com -w 30 -c 14
この台帳で「自動更新できている/手動更新が必要/持ち主・更新方法が不明」に仕分けし、不明から優先して埋めます。
更新を切らさない進め方(自動化できるものから)
原則は「人がやらなくていいものは、人がやらない」。ただしCDN/WAF配下やワイルドカード・SANなど、やり方の選択肢を最初に押さえます。
① 自動更新にできるものは、自動更新にする
- ACME(Let's Encrypt など)なら、
certbot renew等の定期実行と、更新後のWeb/LBプロセスreloadまで自動化する - レンタルサーバー・マネージドサービスは管理画面の自動更新設定を有効化
- マネージド証明書(例:AWS Certificate Manager など)に寄せられる構成なら検討する
- 注意:DNS検証のレコード(CNAME/TXTなど)が残っていることが自動更新の前提です。削除すると更新失敗につながります。プラットフォームのイベントやメトリクスで更新失敗を検知できる設定も合わせて確認
ACMEの更新はレート制限があります。検証時はステージング環境での動作確認→本番切替の順に。制限値や切替手順は公式情報で確認してください。
② CDN/WAF配下・ワイルドカード/SANで詰まりやすい所
- フロントにCDN/WAFや多リージョンLBがある場合、フロント側の証明書更新が必要です(配信エッジの反映も)
*.example.comのワイルドカードや多数SANが必要な場合、ACMEのDNS-01を使うのが一般的です- 概要:
_acme-challenge.example.comのTXTレコードを更新→検証→発行 - 注意:DNS更新の権限設計(誰が/どの資格情報で)と自動化可否(DNSプロバイダのAPIやプラグインの有無)が成否を分けます。自動化が難しければ、手順書化+監視で確実に
- ACMEのDNS-01は、cronでの定期実行時にDNS伝播待ちが必要になることがあります。タイムアウトや再試行の扱いは公式情報で確認
③ 自動化できないものは、更新手順(Runbook)を1枚に
EV/OVなど発行に時間がかかるものは特にRunbook必須。最低限を1枚にまとめます。
- 申請準備:CSR作成・鍵の保管場所・購買/稟議の流れ・想定リードタイム
- 反映:設置場所ごとの配置(Web/LB/CDN/WAF)、全ノード/全コンテナへの配布とreload方法
- 伝播と確認:多台数・リージョン/エッジ配信の伝播時間を考慮(例:CDNは数十分〜数時間かかることがある)
- ロールバック/再発行:失敗時の戻し方、ACMEステージングでの再試験
- 連絡:関係者・窓口(後述のチームアドレス化)
④ 更新したら「効いているか」を外から確認
- 対象FQDNに実接続し、返ってきた証明書の期限を確認(
openssl s_client ... | openssl x509 -noout -enddate等。環境により出力は異なります) - フルチェーンの有効性も外形で確認(中間証明書の欠落・古いチェーン配布を検知できる監視/チェックを併用)
- CDN/LB/WAF配下では、フロント側(配信側)で新しい証明書が返るか、リージョン間で差がないかを確認
うっかりを防ぐ監視:期限の手前で必ず鳴らす
- 何を見るか:FQDNに実接続し、外形の「残り日数」と「チェーン有効性」を確認
- どこで鳴らすか:既存の監視(Uptime系、Zabbix/Mackerel/Nagios 等)か、
openssl/check_ssl_certを用いた内製スクリプトでOK - 閉域網・社内ホストは外形監視が使えないため、内側監視(例:Zabbix/Nagios の check_ssl_cert、または
opensslワンライナー+cron)で代替 - 通知先:個人アドレスは禁止。チームのメール/チャットへ
しきい値の考え方(前倒しOK):
- 自動更新(Let's Encrypt等):30/14/7日
- EV/OVや購買・稟議が絡む:90/60/30日、または60/45/30日に前倒し
- 最低ライン(P0)は後述
具体例:よくある「切れ方」と防ぎ方
- 自動更新が止まっていた:cron停止や認証方式の不一致(HTTP-01→DNS-01に変更したのに未対応)など。外形の残日数監視で検知
- メインは無事、サブドメインが切れた:棚卸しの漏れ。CSVテンプレで可視化
- 更新したのに警告が消えない:CDN/LBが古い証明書を配布中。Runbookに「フロントの反映確認」と「伝播待ち」を明記
- 中間証明書の更新漏れ:サーバーは新証明書だが、フルチェーン未設定で一部クライアントが検証失敗。外形でチェーン有効性をチェック
連絡先の属人化を外す(通知・登録情報をチーム宛に統一)
- CAアカウントのログイン・更新通知先をチームアドレスへ変更(共有メールボックス+認証情報はチームの保管場所に)
- ACMEクライアントの失敗通知・監視の宛先もチームへ
- レジストラ/WHOISの連絡先メールを、可能な範囲でチームアドレスに統一(手続きは各社の公式情報で確認)
最低ライン・優先順位・代替/免除(時間がない現場向け)
- 最低ライン(P0)
1) 公開本番FQDNだけ、外形のSSL期限監視を設定(60/30/14/7日、通知はチーム宛) 2) メイン証明書が自動更新かを確認(方式:HTTP-01/DNS-01/マネージド等) 3) 自動でないものは1枚だけRunbook化(申請〜反映〜確認まで)
- 優先順位:P0=公開本番、P1=公開の周辺/サブドメイン、P2=社内向け
- 代替/免除:
- マネージド証明書で自動更新+プラットフォームの健全性監視がある場合、外形監視は「月1の目視+期限60日で1本だけ補助アラート」でも可
- 内部向けシステムは外形監視を免除し、内側監視(Zabbix/Mackerel/Nagios/cron)またはカレンダー併用を条件に可
- しきい値調整:EV/OVや購買稟議が要る環境は30/14/7では遅いので90/60/30または60/45/30へ。Let's Encrypt等は30/14/7を維持
- 反映確認の省力化:毎回CDN/LBまで手作業が重い場合は、初回に手順を検証して自動デプロイに組み込み、以降は変更時のみ人手確認でも可
明日やること:自分のサイトの期限を1つ確認する
- メインFQDNを1つ開き、ブラウザや
opensslで有効期限を確認しメモ - 自動更新か手動か、フロント(CDN/LB/WAF)側の更新有無も含め把握
- 監視を1つだけ置く(外形または内側)。通知はチーム宛
- CSVテンプレに1行追記。次はサブドメインと社内ホストを足す
- 自動更新の方式(HTTP-01/DNS-01/マネージド)を確認し、必要ならDNS-01等に切替を検討(公式情報で検証)
小さな一歩で「分からない」が「分かっている」に変わります。
「SSL証明書の期限切れ対策」チェックリスト
- 最低ライン(P0)
- 公開本番FQDNに外形のSSL期限監視(60/30/14/7日、チーム宛通知)
- メイン証明書の自動更新方式を確認(止まったら気づける状態)
- 自動でない証明書を1枚だけRunbook化
- 更新・運用
- すべてのFQDNをCSVで棚卸し(用途/期限/設置場所/更新方法/監視/担当)
- 自動更新にできるものは自動化(ACME/マネージド)
- CDN/WAF/LB/多リージョンでの反映と伝播時間をRunbookに明記
- 全ノード/全コンテナへの配布とreload手順を明記
- 外形でフルチェーン有効性を確認できる
- 監視・しきい値
- 期限監視は段階通知(30/14/7日、必要に応じ90/60/30や60/45/30)
- 閉域網は内側監視(check_ssl_cert/openssl等)で代替
- 連絡・属人化対策
- CAアカウント/更新通知/監視通知/WHOIS・レジストラ連絡先をチームアドレスに統一
- 安全運用
- ACMEのレート制限を踏まえ、ステージングで動作確認→本番
- マネージド証明書はDNS検証レコードを保持し、更新失敗をイベント/メトリクスで検知
全部に○でなくてOK。P0を回せば、真っ赤な画面に出会う確率はぐっと下がります。
影響:仕組みにすると、何が変わるか
- 「次いつ切れるんだっけ」という不安が消える
- 期限が近づけば監視が教えてくれるので、思い出す負荷がなくなる
- 休みや引き継ぎでも、台帳とRunbookと監視があれば回る
- 反映確認までの型が決まり、更新のたびに慌てない

証明書の期限切れは、ヒヤッとする一方で、本当は「気づく仕組み」さえあれば防げます。切らしてしまった経験があっても、それはあなたの注意力の問題ではありません。これまで仕組みがなかっただけ。今日は、手元のサイトを1つ開いて期限を確認するだけで十分です。小さな一歩が、明日の安心につながります。
よければ、こちらも
証明書の管理は、セキュリティ運用と「属人化させない仕組み」の両方にまたがる仕事です。鳴らし方の設計や、引き継ぎへの残し方もあわせて整えておくと、いざという時に落ち着けます。
ほかの実務ヒントは記事一覧からどうぞ。保守運用の小さな備えを、メールでも少しずつお届けしています。