2026/04/01
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証明書の監視を運用に組み込む際の推奨フローです。
- 全クライアントサイトをMiterlに登録(SSL監視を有効に)
- 期限30日前のアラートで更新スケジュールを確認
- 期限7日前のアラートで更新が完了しているかを最終確認
- 月次レポートでクライアントに証明書の状態を報告
自動更新の設定も見直す
証明書の監視と合わせて、Let's Encryptの自動更新が正しく動作しているかも確認しましょう。
# certbotの自動更新をテスト
sudo certbot renew --dry-run
# systemdタイマーの状態確認
systemctl status certbot.timer
自動更新が正常でも、監視は保険として必ず入れておくべきです。「自動更新が動いているはず」という前提が崩れた時に、監視がセーフティネットになります。
SSL証明書の管理方法について詳しくは ドキュメント をご覧ください。Miterlの機能を試してみたい方は プレイグラウンド で実際の動作を確認できます。導入前の疑問は FAQ にまとめています。