SNIルーティング
SNI(Server Name Indication)は、TLSハンドシェイクの完了前にClientHelloでホスト名を伝える拡張であり、1つのIPアドレスで数千の証明書を使い分けることを可能にする。
RFC 6066で定義されている。SNI以前は、IPアドレス1つにつき証明書1枚か、高価なSAN証明書に頼るしかなかった。現在のリバースプロキシ(nginx、HAProxy、Caddy)はSNIを見て振り分けを行い、該当ホスト名のTLSを終端するか、TCPのままバックエンドへ中継する。ただしSNIはClientHelloの中に平文で載るため、プロバイダや中間装置にはホスト名が見える。ECH(Encrypted Client Hello)はHPKEでこのSNIを暗号化するもので、CloudflareとFirefox 118以降が既定で対応している。数百万のドメインを同一のエニーキャストIPで終端するCloudflareは、SNI活用の典型例だ。