SNI(Server Name Indication)とは?えすえぬあい
SNI(Server Name Indication)は、TLSハンドシェイクの最初のメッセージ(ClientHello)で接続先のホスト名を平文で伝えるTLSの拡張。サーバは暗号化を始める前にどのサイト宛かを判別できるため、1つのIPアドレスと443番ポートで複数ドメインの証明書を使い分けられる。
最終更新:2026-10-07
高度試験の午前Iを最短で暗記する →背景
接続先のホスト名はHTTPのヘッダに入るが、それが読めるのは暗号化が終わった後である。一方サーバは、どの証明書を提示するかを暗号化の前に決めねばならない。この順序の矛盾のため以前はドメインごとに別のIPアドレスが必要で、IPv4アドレスの枯渇と正面から衝突した。それを解いたのがSNIである。
具体例
AWSのApplication Load BalancerやNginxは、SNIの値を見て提示する証明書と転送先のサーバ群を選ぶ。ファイアウォールやプロキシがこの値を読み、通信を復号せずにドメイン単位で許可・遮断を判断する運用も広く行われている。
試験での引っ掛け
平文で流れるため、通信内容が暗号化されていても「どのサイトへ接続したか」は経路上から見える。これを隠すECH(Encrypted Client Hello)は別の拡張として議論が続いている。またSNI非対応の古いクライアントには既定の証明書が返るため、名前不一致の警告が出る。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。