概要
SNI(Server Name Indication)の必要性について調べました。
■SNIとはなにか
SNI(Server Name Indication)は、「※バーチャルホスト」を「※TLS」に対応させるための機能。
※バーチャルホストとは
HTTP1.1から導入された機能。
この機能を使用すると、同じIPアドレスを複数のドメインで共有できる。
→ユーザーが「〇〇.com」と「××.com」のURLにアクセスした際、webページはそれぞれ別物だが、裏でつながっているサーバーは同じというイメージ。
◎バーチャルホストのメリット
・サーバ台数を節約でき、運用コスト下げられる
・IPアドレスを節約できる
※TLS(SSL)とは
webブラウザでwebサーバーにアクセスするときに、データを暗号化して安全性を高めるための技術。
■SNIの必要性
SNIを使用していないと、バーチャルホスト環境で異なるwebページにアクセスしているのにも関わらず同じサーバ証明書を使用するしかなくなる。
→レンタルサーバサービス等で複数のユーザーが同じサーバを使用しているときに、サイトごとの証明ができない
■機能イメージ
↓ HTTPSの通信の流れを、使用時と非使用時それぞれで確認する。
【SNIを利用していない場合】
>▲クライアント
①webサーバのIPアドレスにアクセス
<□サーバ
②共通のサーバ証明書を返送
→この時点ではどのドメインに接続するかわからないから、サーバ共通の証明書しか使えない
>▲クライアント
③暗号化通信でドメインAを指定
<□サーバ
④ドメインAのwebページを返信
【SNIを利用する場合】
>▲クライアント
①SNIでドメインを指定してアクセス
<□サーバ
②ドメインAのサーバ証明書を返送
→この時点で接続先のドメインが指定されているため、ドメインごとの証明書を使える。
>▲クライアント
③暗号化通信でドメインAを指定
<□サーバ
④ドメインAのwebページを返信
まとめ
・SNIを使用することで、ユーザーアクセス時にサーバ側で接続先ドメインがわかるため、サーバ内のドメインに応じたそれぞれ別の証明書を発行できる。
・レンタルサーバーサービス等で、複数人で同じサーバを使用するときに便利。
参考サイト
以下のページを参考にさせていただきました!
https://jp.globalsign.com/blog/articles/server_name_indication.html