#概要
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