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. 注意点(ハマりどころ)
- 80 / 443 ポートのアクセス制限による Certbot チャレンジ失敗
- HTTP-01 チャレンジで Let’s Encrypt 更新を行う場合、80 ポートへのアクセスをファイアウォールで塞いでいると更新処理がタイムアウト失敗します。