2015.10.13 システム
「SNI SSL」の仕組み
システムエンジニアの大貫です。
前回は「マルチドメインSSL証明書」と「SNI SSL」の違いについて触れたのですが、
今回は「SNI SSL」の仕組みについて、詳しく説明していきます。
通常、「https://・・・・」というURLにアクセスすると、
通信がSSL暗号化されるというのは、一般常識だと思います。
では、1つのIPに対して、複数の「HTTP」のサイトは運用できるのに
なぜ、1つのIPに対して、1つの証明書しか設定することが出来ないのでしょうか?
ホスト名を判断して、SSL証明書を切り替えてくれたら良いのに…。
しかし「HTTPS」とは「HTTP over SSL」の略称で、
「SSL接続が確立された状態」で「HTTP通信」が行われているので、
ホスト名などのヘッダー情報も暗号化されているのです。
さらに言えば、「SSL接続を確立」する際にSSL証明書が必要なのです。。。
それなので、サーバ側はホスト名を判断することが出来ないので、
1つのIPに対して、1つの証明書しか設定することが出来ないのです。
ただし、IPの枯渇や、サーバ性能の向上、仮想化技術の進歩などから
1台のサーバで複数のサイトを動かすことも多くなってきました。
そこで「SNI SSL」の登場です!
「SNI SSL」では、「SSL接続を確立」するタイミングで、
「暗号化していないホスト名」を渡すので、
サーバ側もホスト名を判断することが出来て、
正しいSSL証明書を返すことが出来るとの事でした。
<通常のSSLの流れ>
①[PC]SSL接続を行う事をサーバに対して伝達。
②[サーバ]IPアドレスに沿ったSSL証明書をPCへ発行
③SSL接続確立
④[PC]HOST名など接続データを送信
⑤[サーバ]HOST名に基づいたサイトのデータを送信。
<SNI SSLの流れ>
①[PC]SSL接続を行う事をサーバに対して伝達(HOST名も渡す)。
②[サーバ]HOST名に沿ったSSL証明書をPCへ発行
③SSL接続確立
④[PC]HOST名など接続データを送信
⑤[サーバ]HOST名に基づいたサイトのデータを送信。
こういった新しい技術も、知識として蓄え、
お客様の要件に合わせて、随時ご提案していきますので、
サイト作成をお考えの方は、是非!マリンロードへ気軽にお声がけください。