証明書と信頼チェーンを確認する手順

公開ホスト名を入力して「証明書を検査」を押すと、VoriTools のサーバーが名前を解決して 443 番ポートに接続し、提示された証明書を読み取ります。発行者、サブジェクト、名前、有効期間、SHA-256 フィンガープリント、ネゴシエーションされたプロトコル、暗号スイート、ハンドシェイク時間を表示します。

その下には 2 種類の結果が並びます。ブラウザーも行う名前と有効期間の確認と、送信された証明書がこのサーバーの CA ストアにあるルートまでのパスを構築できるかどうかです。結果は保存されず、検査は 1 分あたり 30 回までです。

  1. ホスト名だけを入力します(例:example.com)。スキーム、パス、IP アドレス、localhost のような 1 ラベルだけの名前は拒否され、国際化ドメイン名は punycode に変換されます。
  2. 「証明書を検査」を押すと、サーバーが公開インターネットから 443 番ポートへ接続します。
  3. 3 つの指標を確認します。ネゴシエーションされたプロトコル、残り日数、ハンドシェイク時間です。
  4. 証明書パネルを確認します。サブジェクトと発行者、コモンネーム、すべてのサブジェクト代替名、表示タイムゾーンでの有効期間、シリアル番号、SHA-256 フィンガープリント、暗号スイート、応答したアドレスです。
  5. 検出結果を確認します。まず名前と有効期間、続いてチェーンの結果(信頼済み、チェーン不完全、自己署名、信頼されていないルート、検証失敗)です。

このレポートが示す範囲と、示せないこと

名前の一致と有効期間

名前の確認はブラウザーと同じ規則です。*.example.com はさらに 1 ラベルだけを覆い(www.example.com)、example.com 自体や a.b.example.com は含みません。証明書にサブジェクト代替名がある場合はその一覧だけを照合し、コモンネームは一覧がない証明書にのみ使います。一覧の名前は数にかかわらずすべて表示します。

日付は証明書の値です。残り日数は整数の日数で数え、有効期限を過ぎると負の値になります。まだ有効でも 30 日以内に期限が切れる証明書は、エラーではなく警告として表示します。

チェーンの判定

接続先の証明書は、このサーバーが使う CA ストアと照合されます。提示された証明書から信頼できるルートまでのパスを構築できる必要があります。否定的な結果は区別して表示します。証明書をルートにつなぐ中間証明書が送信されていない(チェーン不完全)、証明書が自分自身の発行者である(自己署名)、チェーンがこのストアにないルートで終わっている、パスは構築できたが検証に失敗した、のいずれかです。

チェーン不完全は失敗ではなく警告として表示します。ブラウザーは中間証明書をキャッシュし、発行元から不足分を取得するものもあるためです。この検査はどちらも行いません。また、閲覧者のブラウザーや OS のトラストストアも読まず、OCSP、CRL、証明書の透明性も確認しません。したがってここでの「信頼済み」は、閲覧者の環境のブラウザーに対する保証ではありません。

もう一度読む価値のある数値

このサーバーから到達できるのは 443 番ポートの公開ホストだけで、プライベートおよび予約済みアドレスはブロックされ、名前はこのサーバーで解決します。地理的に分散した接続先では、別のネットワークに提示する証明書と異なるものをこのサーバーに提示する場合があります。

表示されるプロトコルはこのサーバーがネゴシエーションした結果で、その TLS スタックは TLS 1.2 までです。最新のブラウザーに TLS 1.3 を提供しているサイトでも、ここでは TLS 1.2 と表示されることがあります。結論を出す前に最新の環境の openssl s_client と比較してください。ハンドシェイク時間は 1 地点での 1 回の測定であり、基準値ではありません。

チェーン長は接続先が送信した証明書の枚数で、提示された証明書も含みます。sha256.badssl.com は 3 枚(証明書、中間証明書、クロス署名されたルート)を送信します。

最近使ったツール: