SSL証明書をインストールした後、正しく動作しているか確認する必要があります — 正しい証明書、完全なチェーン、最新のTLS、エラーなし。各チェックに最適なツールを紹介します。
オンラインツール
SSL Labs Server Test(最も包括的)
URL: ssllabs.com/ssltest
SSLテストの業界標準です。ドメインを入力し、A+からFまでの評価付き詳細レポートを取得します。
チェック内容:
- 証明書の有効性とチェーンの完全性
- プロトコルサポート(TLS 1.0/1.1/1.2/1.3)
- 暗号スイートの強度と順序
- 既知の脆弱性(POODLE、Heartbleed、DROWN、ROBOT)
- HSTS設定
- OCSPステープリング
- DNS CAAレコード
- 証明書の透明性
目標: Grade A+(TLS 1.2以上、AEAD暗号、長いmax-ageのHSTSが必要)
使用タイミング: 初期セットアップ後、設定変更後、定期的に(月次)。
SSL Shopper SSL Checker
URL: sslshopper.com/ssl-checker
証明書の有効性とチェーンに焦点を当てたクイックチェック。
チェック内容:
- 証明書が正しくインストールされているか
- チェーンが完全か(中間証明書が存在)
- 証明書がドメインと一致
- 有効期限
使用タイミング: 「動作しているか?」のクイックチェック — SSL Labsより高速。
crt.sh(証明書の透明性検索)
URL: crt.sh
ドメインに対して発行されたすべての証明書の証明書の透明性ログを検索します。
使用タイミング: 不正な証明書の監視、証明書がログに記録されたか確認、発行履歴の確認。
Why No Padlock
URL: whynopadlock.com
特定のページの混合コンテンツ(HTTPSページ上のHTTPリソース)をスキャンします。
使用タイミング: 有効な証明書があるのにパドロックに警告が表示される、または欠落している場合。
コマンドラインツール
OpenSSLによるクイックチェック
# HTTPSが動作するか確認
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Verify return code"
# 0 (ok) = 正常
# 証明書の有効期限を表示
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
# 証明書の完全な詳細を表示
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text
# ネゴシエートされたTLSバージョンを確認
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Protocol"
# 特定のTLSバージョンをテスト
echo | openssl s_client -connect yourdomain.com:443 -tls1_3 2>/dev/null | grep "Protocol"
curlによるクイックHTTPSテスト
# 基本的なHTTPSチェック
curl -I https://yourdomain.com
# 証明書情報を表示
curl -vI https://yourdomain.com 2>&1 | grep -E 'subject:|issuer:|expire'
# HTTPからのリダイレクトを確認
curl -ILs http://yourdomain.com | grep -E '^HTTP|^Location'
nmapによる暗号列挙
nmap --script ssl-enum-ciphers -p 443 yourdomain.com
サーバーがサポートするすべての暗号スイートをTLSバージョンごとにグループ化して表示します。
いつ何を確認するか
| タイミング | 確認内容 | ツール |
|---|---|---|
| 証明書インストール後 | チェーン完全、ドメイン一致 | SSL Shopper(クイック) |
| 設定変更後 | 完全監査(評価、暗号、脆弱性) | SSL Labs(徹底的) |
| 月次 | 有効期限が近づいていないか | 監視スクリプト |
| 移行後 | 混合コンテンツ | Why No Padlock |
| 継続的 | 不正な証明書 | crt.sh / CT監視 |
| エラーデバッグ | 接続の詳細 | OpenSSL s_client |
SSL Labs評価の解釈
| 評価 | 意味 | よくある問題 |
|---|---|---|
| A+ | 優秀 | 長いmax-ageのHSTSあり |
| A | 良好 | HSTSが欠落または短いmax-age |
| B | 改善の余地あり | 古い暗号スイート、TLS 1.0/1.1が有効 |
| C | 弱い設定 | 脆弱な暗号、前方秘匿性なし |
| F | 深刻な問題 | 既知の脆弱性、有効期限切れの証明書 |
| T | 証明書が信頼されない | 自己署名、ドメイン不一致、不完全なチェーン |
よくある質問
どのくらいの頻度でテストすべきですか?
SSL関連の変更後、および監視の一環として少なくとも月次で。SSL Labsの結果は数時間キャッシュされます — 新しいスキャンを強制するには&clearCache=onを追加してください。
SSL Labsは安全ですか?サイトが露出しませんか?
はい、安全です。SSL Labsはどのブラウザとも同じ方法でサーバーに接続します。何も変更せず、脆弱性を露出しません。結果はデフォルトで公開です — プライバシーを希望する場合は「Do not show the results on the boards」をチェックしてください。
SSL LabsでAを取得したのにまだ「保護されていない通信」と表示される
SSL Labs評価はサーバーのTLS設定をカバーします。ブラウザでの「保護されていない通信」は以下が原因の場合もあります:混合コンテンツ(Why No Padlockで確認)、HTTPからのリダイレクトがない、HTTP経由で直接アクセス。これらはページレベルの問題であり、サーバーレベルではありません。
SSLテストを自動化できますか?
SSL Labsには無料のAPI:api.ssllabs.com/api/v3/analyze?host=yourdomain.comがあります。CI/CDや監視パイプラインに統合できます。よりシンプルなチェックには、cronスクリプトでOpenSSLコマンドを使用してください。