SSL/TLS 証明書の有効期限・証明書チェーン確認と更新事故防止

SSL HTTPS セキュリティ DevOps OpenSSL
結論:30秒で SSL 証明書期限を確認する
  • 期限取得コマンド: echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
  • Let’s Encrypt 期限: 90 日間(30 日前に自動更新)
  • 確認ツール: 下のコンポーネントで証明書残日数を即チェック

1. オンライン SSL/TLS 証明書確認ツール

ドメインを入力することで、SSL/TLS証明書の有効期限、残日数、暗号アルゴリズム(RSA/ECDSA)、発行元(CA)を調査します。

🔐 この場でSSL証明書をチェックする

「SSL Labsで確認」をクリックすると、Qualys SSL Labsの詳細レポートが新しいタブで開きます。証明書の有効期限や評価を確認できます。


2. CLI コマンドでの証明書有効期限・チェーン確認

インフラ運用やシェルスクリプトでの監視では openssl コマンドを使用します。

① 証明書の有効期限と残り日数を取得

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

② 証明書チェーン(中間証明書)の検証

echo | openssl s_client -connect example.com:443 -servername example.com -showcerts 2>/dev/null | grep -E "(depth|s:|i:)"

3. なぜ「中間証明書チェーン」のミスが起きるのか?

SSL証明書はエンドサーバー証明書 → 中間CA証明書 → ルートCA証明書の連鎖(チェーン)によって信頼性が保証されます。

  • 問題点: デスクトップ版 Chrome や Firefox は不足している中間証明書を自動補完(AIA Fetching)するため、開発者のPCではエラーが出ません。
  • 実害: 自動補完機能を持たない一部のモバイルブラウザや、Java/Python などのバックエンド API クライアントからのアクセス時のみ SSLHandshakeException が発生して失敗します。

4. 注意点(ハマりどころ)

  1. 80 / 443 ポートのアクセス制限による Certbot チャレンジ失敗
    • HTTP-01 チャレンジで Let’s Encrypt 更新を行う場合、80 ポートへのアクセスをファイアウォールで塞いでいると更新処理がタイムアウト失敗します。