はじめに
ウェブサイトやAPIを安全にやり取りするために、SSL/TLS証明書(以下、証明書)が使われます。証明書には有効期限があり、期限が切れるとブラウザやサービスが接続を拒否したり、安全ではないと表示したりします。その結果、利用者がサイトにアクセスできなくなったり、メールやAPI連携が止まったりするリスクがあります。
この章では、証明書の有効期限確認がなぜ重要かをやさしく説明します。具体例としては、ECサイトで購入ができなくなる、社内システムのAPI連携が失敗する、といった影響があります。期限切れは見落としやすいので、日常的なチェックが大切です。
本記事は次の内容を順に扱います。
- 外部から証明書の有効期限を確認する方法
- ブラウザを使って手動で確認する方法
- 複数の証明書を一括で管理する方法
- 自動監視とアラート機能の導入方法
- 他のシステムで確認する実務的手順
これらを学ぶことで、証明書切れによるトラブルを未然に防げます。読者はサイト運営者、システム管理者、社内の担当者を想定しています。
SSL証明書の有効期限を外部から確認する方法
概要
ウェブサイトのSSL証明書は有効期限を過ぎるとブラウザで警告が出ます。外部から定期的に確認することで、期限切れを未然に防げます。本章では手元の端末からサーバー側の証明書情報を取得する具体的な方法をわかりやすく説明します。
OpenSSLで確認する方法
OpenSSLはサーバーへ直接接続して証明書を取得できます。代表的なコマンド例:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
出力例には「notBefore」(有効開始)と「notAfter」(有効期限)が表示されます。SNIを使う場合は-servernameを指定してください。接続できない場合やファイアウォールで遮断されると情報が得られません。
curlで確認する方法
curlは–insecureで証明書検証を無効にして接続し、-vで接続時の詳細を表示できます。簡単な例:
curl -v –insecure https://example.com 2>&1 | sed -n ‘s/.expire date:\s//p’
ただしcurl単体では有効期限だけを整形して出す機能が限られるため、ログを加工するか別ツールと組み合わせます。–cert-statusを付けるとOCSPステータス(サーバーがOCSPステープリングを提供している場合)を要求できます。
OCSPステープリングに関する注意
OCSPステープリングに対応していないサーバーでは–cert-statusを使っても応答が返りません。その場合はOpenSSLで直接証明書を取得してからOCSPを別途照会する必要があります。
実務上のポイント
- 定期的に(例:30日前、7日前)チェックするスクリプトを作ると安全です。
- 複数ドメインはループで回して一括取得します。
- 自動化する際は接続失敗の扱い(ネットワーク障害と期限切れの区別)を必ず実装してください。
コマンド例(まとめ)
- OpenSSL: echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
- curl(OCSP要求): curl –cert-status -v https://example.com
以上が外部から有効期限を確認する基本的な方法です。
ブラウザから確認する方法
はじめに
ブラウザから直接、アクセスしているサイトのSSL/TLS証明書の有効期限を確認できます。ここでは代表的なブラウザごとに、誰でもわかる手順を短く説明します。
Google Chrome / Microsoft Edge(Chromium系)
- アドレスバーの鍵(または「保護された通信」)をクリックします。
- 「この接続は保護されています」→「証明書は有効です」を選びます。
- 証明書のウィンドウで「有効期間(発行日〜有効期限)」を確認します。
Firefox
- 鍵マークをクリックし、「接続は保護されています」を選びます。
- さらに「もっと見る」→「証明書を表示」を開きます。
- 証明書の詳細で有効期間を確認します。
Safari(Mac/iOS)
- アドレスバーの鍵アイコンをクリックします。
- 「証明書を表示」または「詳細を表示」を選び、有効期限を確認します。
Internet Explorer
- 鍵マークをクリックし「証明書の表示」を選びます。
- 証明書ウィンドウの「有効期間」を確認します。
ワンポイント注意
- ドメインが一致しているか、有効期限が未来かを必ず見てください。期限切れやドメイン不一致があると警告が出ます。
- 時刻設定が狂っていると正しく表示されない場合があります。端末の日時も確認してください。
- モバイルでも基本的に同じ操作で、鍵をタップして証明書情報を見られます。
複数の証明書を一括管理する方法
概要
大規模組織向けにはValidCertWatchというツールが便利です。社内の複数Webサイトの証明書情報を一目で管理できます。証明書の更新状況を見える化し、各FQDNに適用された証明書情報を一覧表示します。期限に応じたステータス分類や利用状況の集計表示も可能です。Elasticsearchの検索機能を使い、同じ証明書を使うFQDN一覧や、現在利用中の証明書を簡単に把握できます。
主な機能
- ダッシュボードで全体の有効期限状況を把握
- FQDNごとの証明書詳細表示(発行者、期限、サブジェクトなど)
- 有効期限に応じたステータス分類(例:90/30/7日)
- 同一証明書を使うFQDNの一覧表示(Elasticsearch連携)
- 利用中証明書の集計・CSV出力・インポート機能
導入手順(簡単)
- 管理対象FQDNをCSVまたはAPIで登録(例:100件まとめて登録)
- スキャン設定(ポート、プロトコル、頻度)を指定
- スキャン結果をElasticsearchに格納しダッシュボードに反映
- ダッシュボードでステータス確認、必要に応じて所有者へ連携
運用のポイント
- ドメインごとに担当者タグを付けておくと対応が速くなります
- 期限閾値は組織の運用に合わせて調整してください
- 同一証明書を共有するFQDNを把握すると更新漏れを防げます
トラブル対応例
- 証明書が見つからない場合は接続ポートやSNI設定を確認
- 自己署名や期限切れはリスト化して優先的に差し替え
活用例
同じ証明書を使う複数ホストを一括で確認し、更新作業を効率化できます。日次集計で運用状況を定量的に把握することも可能です。
自動監視とアラート機能
概要
証明書の有効期限切れを防ぐには、自動監視と通知が有効です。期限が近づいたら人に知らせる仕組みを用意します。ここでは監視の設計、簡単なShellスクリプト例、通知方法、自動更新の考え方、運用上の注意点をやさしく説明します。
監視の基本設計
- 閾値を決めます(例:残日数15日でアラート)。
- 定期実行はcronなどで毎日動かします。
- ログを残して誤検知や過去の検知履歴を確認できるようにします。
Shellスクリプト例(概念)
以下は概念の流れです。実運用では環境に合わせて調整してください。
1. opensslで証明書の有効期限を取得
2. UNIX時間に変換し残日数を計算
3. 閾値を下回れば通知コマンドを実行
例:
– openssl s_client -connect example.com:443 -servername example.com < /dev/null | openssl x509 -noout -dates
通知方法
- メール:mailxやsendmailで管理者に送信します(例:mail -s)。
- チャット:SlackやTeamsのWebhookにcurlでPOSTします。
- モニタリングツール:ZabbixやPrometheusと連携しアラートルールを作ります。
具体例:curl -X POST -H ‘Content-type: application/json’ –data ‘{“text”:”…”}’ https://hooks.slack.com/…
自動更新の考え方
- Let’s Encryptを使うならcertbotの自動更新を設定できます。cronやsystemdタイマーでcertbot renewを定期実行します。
- 商用証明書は自動化が難しい場合もあるため、発行手順をスクリプト化して部分的に自動化します。
運用上の注意点
- テスト通知を必ず用意し、本番の誤報を減らします。
- 時刻やタイムゾーンの違いで誤差が出るためサーバ時刻を同期してください。
- 証明書チェーンや中間証明書の有効期限も確認します。
テストと監査
- 期限が近いダミー証明書で通知が正しく来るか確認します。
- 定期的にログを見て通知漏れがないか監査します。
その他のシステムでの確認方法
はじめに
NetApp ONTAPやTrend Micro Apex Oneなど、製品ごとに証明書確認の方法が異なります。ここでは代表的な手順と確認ポイントをやさしく説明します。
NetApp ONTAP 9 の例
コマンドラインで次のコマンドを実行します。
::> security certificate show -vserver <vserver_name>
出力にIssuer、Subject、Not After(有効期限)が表示されます。Not Afterを見て有効期限を確認してください。複数ある場合はVServerごとに実行します。
Trend Micro Apex One の例
Apex Oneの初期SSL証明書はインストール時に作成され、初期設定で有効期間が3年に設定されます。管理コンソールの証明書設定画面やインストールディレクトリの証明書ファイルを確認すると、有効期限や発行情報が分かります。
その他の代表例
- ロードバランサ(F5等): 管理画面またはCLIで証明書一覧を確認します。
- メールサーバ(Postfix等): 証明書ファイルの期限をopensslで確認します。
- Javaアプリ(keystore): keytool -list -v -keystore で有効期限を確認します。
共通の確認手順(簡易)
- 管理画面やCLIで証明書一覧を開く
- 発行者、サブジェクト、有効期限(Not After)を確認
- 必要ならエクスポートしてopensslやkeytoolで詳細確認
注意点
管理者権限が必要な場合があります。証明書を更新する際はサービス停止の影響範囲を事前に確認してください。












