2026/04/01

SSL証明書の期限切れ事故を防ぐ!自動監視で安全なサイト運用を

SSL証明書 セキュリティ 死活監視 自動化

SSL証明書の期限切れは「うっかり」では済まされない

SSL証明書の期限が切れると、ブラウザに**「この接続ではプライバシーが保護されません」**という警告が表示されます。ユーザーの大半はこの画面を見た瞬間に離脱し、サイトへの信頼は大きく損なわれます。

Let's Encryptの普及で自動更新が一般的になりましたが、それでも期限切れ事故は後を絶ちません。

なぜ自動更新があるのに期限切れが起きるのか

よくある原因は以下のとおりです。

  • サーバー移行時にcronジョブが引き継がれなかった
  • DNS設定の変更でドメイン認証が失敗するようになった
  • certbotのバージョンが古くなり、更新処理がエラーで停止
  • 手動取得した証明書の更新を忘れた

特に制作会社が複数のクライアントサイトを管理している場合、1つのサイトの更新漏れに気づくのは困難です。

SSL証明書の有効期限を確認するコマンド

まずは手動で確認する方法を知っておきましょう。

# SSL証明書の有効期限を確認する
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -dates

# 出力例:
# notBefore=Jan 15 00:00:00 2026 GMT
# notAfter=Apr 15 23:59:59 2026 GMT

ただし、管理サイトが数十件になると、毎回手動で確認するのは現実的ではありません。

Miterlで証明書の期限切れを自動監視する

Miterl では、死活監視と同時にSSL証明書の有効期限も自動でチェックします。証明書の期限が近づくと、設定した通知チャンネル(Slack、Chatwork、LINE等)にアラートが届きます。

# SSL証明書監視を含むモニターの作成例
curl -X POST https://api.miterl.com/v1/monitors \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://client-site.com",
    "interval": 300,
    "ssl_check": true,
    "ssl_expiry_alert_days": 30
  }'

ssl_expiry_alert_days を設定すれば、期限切れの30日前・14日前・7日前など、段階的に通知を受け取ることも可能です。

制作会社の運用フロー例

SSL証明書の監視を運用に組み込む際の推奨フローです。

  1. 全クライアントサイトをMiterlに登録(SSL監視を有効に)
  2. 期限30日前のアラートで更新スケジュールを確認
  3. 期限7日前のアラートで更新が完了しているかを最終確認
  4. 月次レポートでクライアントに証明書の状態を報告

自動更新の設定も見直す

証明書の監視と合わせて、Let's Encryptの自動更新が正しく動作しているかも確認しましょう。

# certbotの自動更新をテスト
sudo certbot renew --dry-run

# systemdタイマーの状態確認
systemctl status certbot.timer

自動更新が正常でも、監視は保険として必ず入れておくべきです。「自動更新が動いているはず」という前提が崩れた時に、監視がセーフティネットになります。

SSL証明書の管理方法について詳しくは ドキュメント をご覧ください。Miterlの機能を試してみたい方は プレイグラウンド で実際の動作を確認できます。導入前の疑問は FAQ にまとめています。