TLSでクライアント側からホスト名を送る方法

openmya経由。
名前ベースのVirtualHostでそれぞれのSSLサーバ証明書を使う(Web Security Memo)
Server Name Indication(SNI)って知らなかった。RFC 3546 Transport Layer Security (TLS) Extensionsに定義されている。
SSL/TLSの場合証明書はサーバがえいやと落としてくるが例えばHTTPSの場合URLはセッション確立後にクライアントから送られるので不整合がおきうる。そのためNamedVirtualHostとかで使えないということがあったのだけどそれをなんとかする拡張で、セッション確立時にクライアントからアクセスしたいサーバ名リストを指定してしまう。なるほど。
SSL/TLSってあくまでもアドレッシングはIPなのに証明書の検証はFQDNに頼るわけだから不整合を感じていたのだけどそこが解決される拡張。でももしかしたら本当は証明書はIPアドレスベースでやってDNSSECでFQDNIPアドレスの整合を保証するほうがレイヤ的にすっきりするのかもしれない。
このRFCには他にもClient Certificate URLsとかTrusted CA Indicationとか気になる拡張があるなぁ。