SSL/TLS証明書チェーンの仕組み
ブラウザに鍵マークが出るとき、そのブラウザは Web サイトの証明書から、OS が既に信頼しているルートまで続く**信頼の連鎖(チェーン)**を検証し終えています。このチェーンを理解することが、TLS エラーの大半を直す鍵です。
3つのつながり
| つながり | 発行先 | 発行者 | 置き場所 |
|---|---|---|---|
| リーフ(エンドエンティティ) | あなたのドメイン | 中間CA | サーバが送る |
| 中間 | CA | ルートCA | サーバが送るべき |
| ルート | ルートCA | 自分自身(自己署名) | OS/ブラウザの信頼ストア |
クライアントは最初からルートを信頼しています。ルートが中間に署名し、中間があなたのリーフに署名します。各証明書の issuer(発行者)を信頼されたルートに到達するまでたどることで、ルート鍵をオンラインに晒すことなく信頼を確立します。
「中間証明書欠落」が起きる理由
サーバはリーフとすべての中間証明書を提示しなければなりません。ルートは送りません(クライアントが既に持っています)。典型的な障害は、リーフだけを設定したサーバです。デスクトップ Chrome は動くことがあります(AIA で中間をキャッシュ/取得するため)が、モバイルや curl は unable to get local issuer certificate で失敗します。CA が提供する fullchain ファイルを必ず配備してください。
自分で確認する
# サーバが送る全証明書を subject/issuer 付きで表示
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null
当サイトの SSL/TLSチェッカー は、同じチェーンをブラウザに表示し、中間証明書の欠落やホスト名不一致があれば警告します。期限監視は 証明書の有効期限を確認する、プロトコル版は TLSバージョン を参照してください。
メモ: PEM ファイルでは順序が重要です。リーフが先、続いてルートに近い順ではなくルートに向かう順に中間を並べます。順序を誤ると、中間欠落と同じエラーになります。