すべてのデプロイガイド デプロイ

SSL証明書の監視:ツールとセットアップガイド

SSL監視は有効期限の確認以上のものです。完全な監視セットアップでは、証明書の有効期限切れ、設定変更、不正な証明書の発行、SSLエラーによるダウンタイムを監視します。

証明書の有効期間が2029年までに47日に短縮されるため、プロアクティブな監視は不可欠になります。更新漏れはサイトをオフラインにします。

監視すべき項目

対象理由頻度
証明書の有効期限有効期限切れ = サイトダウン毎日
証明書チェーン不完全なチェーン = 一部デバイスで失敗毎週
TLSバージョン古いTLSバージョンはブラウザに無効化される毎月
CTログドメインの不正な証明書を検出継続的
OCSPステープリングステープリング障害はパフォーマンスを低下させる毎週
HSTSヘッダーHSTSがないとダウングレード攻撃に脆弱毎月

無料の監視オプション

1. Cronスクリプト(セルフホスト)

#!/bin/bash
# /usr/local/bin/ssl-monitor.sh
DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
ALERT_EMAIL="admin@example.com"

for domain in $DOMAINS; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)

  if [ -z "$expiry" ]; then
    echo "ERROR: Can't connect to $domain:443" | mail -s "SSL Monitor: $domain unreachable" $ALERT_EMAIL
    continue
  fi

  expiry_epoch=$(date -d "$expiry" +%s 2>/dev/null)
  now_epoch=$(date +%s)
  days_left=$(( (expiry_epoch - now_epoch) / 86400 ))

  if [ "$days_left" -lt "$WARN_DAYS" ]; then
    echo "$domain certificate expires in $days_left days ($expiry)" | mail -s "SSL Expiry Warning: $domain" $ALERT_EMAIL
  fi
done
# crontabに追加 -- 毎日9時に実行
0 9 * * * /usr/local/bin/ssl-monitor.sh

2. UptimeRobot(SaaS — 無料枠あり)

  1. UptimeRobotでサインアップします
  2. モニターを追加 → タイプ:HTTPS
  3. ドメインURLを入力します
  4. SSL有効期限アラートを設定:有効期限の30日前
  5. アラートを設定:メール、Slack、Webhook

UptimeRobotは5分ごとにチェックし、ダウンタイムと証明書の有効期限の両方でアラートを送信します。

3. 証明書の透明性の監視

ドメインに対して不正な証明書が発行されていないか、CTログを監視します:

サービス方法コスト
Cert Spotter(SSLMate)新しい証明書のメールアラート無料枠あり
crt.sh手動検索無料
Facebook CT MonitorFacebookの監視ツール無料

有料監視ツール

ツール機能価格
Better UptimeSSL + 稼働時間 + インシデント管理無料枠 / $20+/月
DatadogSSL チェック付きフルインフラ監視$15+/ホスト/月
PingdomSSL + 稼働時間 + パフォーマンス$10+/月
StatusCakeSSL監視 + アラート無料枠 / $20+/月

フル監視構成の例

本番サイトでは、複数のレイヤーを組み合わせてください:

レイヤー1: Certbot自動更新(有効期限切れを防止)
レイヤー2: Cronスクリプト(更新失敗をキャッチ -- 日次メール)
レイヤー3: UptimeRobot(SSLエラーをキャッチ -- 5分チェック)
レイヤー4: CT監視(不正な証明書をキャッチ -- 継続的)

これにより多層防御が実現します。単一障害点がありません。

GetHTTPSでの監視

GetHTTPSには組み込みの監視機能はありません(証明書発行ツールです)。ただし、ワークフローは以下のようにすべきです:

  1. GetHTTPSで証明書を発行する
  2. 更新リマインダーを設定 — 90日中60日目にカレンダーアラート
  3. SSL監視を追加 — バックアップとしてCronスクリプトまたはSaaSツール
  4. 本番環境での自動更新にCertbot検討する

よくある質問

最低限必要な監視は何ですか?

最低限:証明書更新のカレンダーリマインダー(90日中60日目)と、自動チェック(CronスクリプトまたはUptimeRobot)。カレンダーが通常の更新をキャッチし、自動チェックが障害をキャッチします。

複数ドメインを監視するにはどうすればいいですか?

上記のCronスクリプトはループで複数ドメインを処理します。UptimeRobotなどのSaaSツールでは、複数のモニター(ドメインごとに1つ)を追加できます。

ステージング/開発環境の証明書も監視すべきですか?

はい、有効期限のあるLet’s Encrypt証明書の場合は。ステージング環境の証明書が有効期限切れになると、QAと開発がブロックされます。最低限、カレンダーリマインダーを設定してください。

有効期限だけでなく証明書チェーンも監視すべきですか?

SSL Labs APIは自動的なチェーン検証を提供します。手動で簡単に確認するには:

echo | openssl s_client -connect example.com:443 2>/dev/null | grep "Verify return code"

チェーン監視のためにこれをCronスクリプトに追加してください。

関連記事

デプロイ 2026-05-07
SSL証明書の有効期限を確認する方法
ブラウザ、OpenSSL、オンラインツールでSSL証明書の有効期限を確認。予期しない有効期限切れとダウンタイムを防ぐための監視設定方法も解説します。
SSL と証明書 2026-05-08
証明書の透明性:ドメインの証明書を監視する方法
証明書の透明性(CT)ログは公開発行されたすべてのSSL証明書を記録します。CTの仕組み、ドメインの不正証明書の監視方法、crt.shの使い方を解説します。
SSL と証明書 2026-05-07
SSL証明書の有効期間:47日間への変更の解説
CA/Browser Forumは2029年までにSSL証明書の有効期間を47日間に短縮することを決議しました。タイムライン、あなたのWebサイトへの影響、準備方法を解説します。
はじめに 2026-05-07
Let's Encrypt証明書の更新方法
Let's Encrypt証明書は90日ごとに有効期限が切れます。GetHTTPS(手動)またはCertbot(自動)での更新方法と、47日間の有効期限への準備について解説します。
ブラウザで無料 SSL 証明書を取得
インストール不要、アカウント不要。秘密鍵は常にデバイスに残ります。
証明書を取得