ノノログ

ホーム / ブログ / サーバ / そろそろイケそうな「Server Name Indication」(SNI)について調べてみた

そろそろイケそうな「Server Name Indication」(SNI)について調べてみた

そもそもSNIとはなんなのか

Server Name Indication (SNI, サーバー ネーム インディケーション, サーバ名表示)は、SSL/TLSの拡張仕様の一つである。SSLハンドシェイク時にクライアントがアクセスしたいホスト名を伝えることで、サーバ側がグローバルIPごとではなくホスト名によって異なる証明書を使い分けることを可能にする。

-- 引用(wikipedia)

ざっくりいうと「1つの通信経路(1ip/port)を利用したサーバで、複数のSSL証明書がつかえるよー」ということ。
もうちょっとざっくりすると、VirtualHost毎に証明書を指定できるよーということ。

なぜSSL証明書が必要なのか

SSL証明書(EV証明書)の役割は大きく分けて以下の2つある

  1. 通信の暗号化
  2. サイトの正当性証明及び事業者の存在証明

実運用上でのSSL証明書の有用性は、公共性の高い機関を除いて暗号化に重きをおいていると思う。
SSL証明書の発行・運用には一定のコストが必要で、SNIを利用しない多くの場合にはIPアドレスによる通信経路の違いによって複数SSL証明書を利用し通信の暗号化を図っていた。

大きくないWEBサイトにおいて、1つのハードウェア内に複数のWEBサイトを運用することは少なくなく、その場合ハードウェアのコストに対して通信経路の拡充やSSL証明書の発行・利用・運用コストは大きな比重を占める。

そこでSNIですよ

WEBサイトをまとめて運用するんだから通信経路を増やすことなくSSL証明書ふやせたらコスト圧縮出来るよねー。
ワイルドカード証明書も合わせて使ったらもっと圧縮できるよねー。
である。

国内大手インターネットサービス事業者である「さくらインターネット株式会社」がやる気を出し始めた

いろんな情報を調べていくうちに、国内インターネットサービス事業者であるさくらインターネットの記事を数点みつけ、「イケる」判断を下したと推測した。
「さくらのレンタルサーバ」独自SSL機能拡充(SNI SSL提供開始)のお知らせ (2015/02/04)
http://www.sakura.ne.jp/news/sakurainfo/newsentry.php?id=1018

AndroidにおけるSNI対応状況 - さくらのナレッジ(2014/02/18)
http://knowledge.sakura.ad.jp/tech/1706/

ネガディブ要素について

SNIを利用するためには、サーバとクライアントの双方が対応している必要がある。
2015/02/13現在かなりのブラウザが対応されているが、やはり一部古いブラウザには未対応となる。

・Internet Explorer7(Windows Vista)以降 ※Windows XPは非対応です。
・Mozilla Firefox 2.0 以降
・Google Chrome 
・Safari 3.0 以降
・iOS 4 以降の MobileSafari
・Android Honeycomb 3 以降
・Windows Phone 7 以降

-- 対応ブラウザ一覧(さくらインターネット引用)


対応していないものについては
・Android2系以前
・iPhone3等のiOS3以前
・WindowsXPのIE
・その他SNIをサポートしていないブラウザやアプリケーション

ポジティブ要素について

「MicrosoftのWindowsXPがサポート終了したこと」により、該当WEBサイトがXPを対象としないのであれば、Windows/Macであればほとんど対象に入っている状態となった。
3年前に一度検証した際は「XP無理ならだめじゃん」だったのだけど今なら利用しても対象ユーザによっては問題ない状態となったといえる。

その他ミドルウェアのWEBサーバや、OpenSSLなどについても現行動いているサーバのほとんどがサポートしているバージョンに入ってきている。

 

使うべきか否か

インターネットを利用する人は先進技術を積極的に使ってほしいと思う。し、そうあることで便利度が加速すると思っている。
だから、もちろんミッションクリティカルな場合を除いてだけど「個人・法人の命に関わる場合を覗いて利用すべき」という結論に達した。

2015/02/13現在において、企業のWEBサイトにSNIを利用することが「法人の命に関わる」場合があるのでそこは難しい判断を必要としそうではある。

 

 

その他参考サイト

  • https://www.softel.co.jp/blogs/tech/archives/2428
  • https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
  • http://www.gcd.org/blog/2007/06/122/
  • http://www.networking4all.com/en/ssl+certificates/faq/server+name+indication/
  • http://blog.hyec.jp/2014/10/ipsslsni.htm

 

「うそ・大げさ・紛らわしい」や「完全に間違ってんよ!」がありましたらご連絡ください。