SNIとは? CDNでSSL配信を行うための基礎知識

2022.02.07

J-Stream CDNext

CDN

常時SSL化の必要性が叫ばれる中、HTTPSでWebサイトが配信できることは非常に重要です。CDNを利用する場合でもSSL/TLSによる配信が可能です。SNI(Server Name Indication)とは、一つのサーバーで複数のドメイン名を使用する場合に、複数のSSL証明書を運用できるようにするSSL/TLSの拡張仕様です。今回は、CDNを利用したSSL/TLS配信で一般的な仕様であるSNIの、利用時の注意点について解説します。

1. SSL/TLS化の重要性

SSL/TLSはインターネット上などでデータを暗号化して送受信するプロトコルです。これまではIDとパスワードによってログインを必要とするWebサイトなど、セキュリティ上のケアが必要なページでのみ利用されることが多いものでしたが、昨今では全てのページをSSL化する「常時SSL化」の重要性が増しています。ネガティブな要因を回避することはもちろん、常時SSL化にはポジティブな必要性もあります。

サイバー攻撃の激化/多様化

IDやパスワード、個人情報などを盗まれてしまうフィッシング詐欺を始めとして、インターネット上におけるセキュリティリスクは激化の一途です。SSL/TLSを利用することで、そのWebサイトやWebサイトの運営者が正当に実在することが保証されるので、ユーザーにとって安心なWebサイトを構築する上でSSL化は非常に重要です。

非SSL環境に対するブラウザからの警告

主要ブラウザの多くは、SSL化されていないWebサイトにユーザーがアクセスする際に、通信が保護されていない旨を警告として表示させるようになっています。SSL化していないと、ユーザーからは身元の分からない安全でないWebサイトと評価されてしまう恐れがあります。

SEOへの貢献

GoogleはWebサイトが常時SSL化していることに対して、検索順位へポジティブに影響させることを発表しています。集客を目的とするWebサイトではSEO(Search Engine Optimization)対策上必須の対応となるでしょう。

参考:ランキング シグナルとしての HTTPS(Google 検索セントラル)

Webサイトの表示高速化

従来HTTPS配信は、その暗号化処理のためにHTTPよりも通信に負荷がかかり、通信速度が低下すると言われていました。やがてWebサイト表示高速化に有効な仕様を数多く搭載した、HTTP/1.1の次世代バージョンであるHTTP/2が登場すると事情が逆転します。多くの主要ブラウザでは、SSL化されていないWebサイトではHTTP/2をサポートしない仕様になり、結果としてSSL化されたHTTP/2配信の方が高速にWebサイトを表示できるようになりました。表示高速化はユーザー体験の向上、またSEOにも効果的と言われています。

2. SNIとは

SSL通信を行うためには、認証局と呼ばれる第三者機関から、そのWebサイトや運営者が実在する本物であることを証明してもらう必要があります。問題の無いことが確認されると、認証局よりSSL証明書が発行され、これをサーバーにインストールすることでSSL通信が可能になります。

1つのサーバーに複数のドメインが設定されている際の問題

SSL証明書は基本的に、1つのサーバー(1つのグローバルIPアドレス)に対して1ドメイン分しか利用できません。HTTPSプロトコルは、そのWebサイトにアクセスする前にまず特定のクライアントと、SSL証明書が設定されたサーバーとの間でSSLセッションを確立し、その中で暗号化通信を行います。
セッションを確立する際にはまだクライアントがアクセスしたいドメインをサーバーは予測することが出来ないので、例えば1つのサーバーに複数のドメインが設定されていたとしても、ドメインごとにSSL証明書を使い分けることが出来ませんでした。

例えばHTTPS通信を行いたいWebサイトを、複数のユーザーが利用しているレンタルサーバーで運用していて、全員が独自ドメインを取得していた場合はどうなるでしょう。あるサーバーに対してSSL証明書は1枚1ドメイン分しか利用できないので、ユーザー全員が同じドメインを使ってSSL通信を行わなければいけないことになります。

SSL証明書は1枚1ドメイン分の説明図

1つのサーバー(1つのグローバルIPアドレス)で複数のドメインを利用する技術のことを「名前ベースバーチャルホスト」と呼びます。一方、1つのサーバーに複数のグローバルIPアドレスを割り当てる技術のことを「IPベースバーチャルホスト」と呼びますが、この場合であれば各グローバルIPアドレスに対してユニークなSSL証明書を設定することが可能です。ただし1つのサーバーに対して複数のグローバルIPアドレスを割り当てるには技術的にも金銭的にもコストが高くなり、HTTPS通信の実現に対するハードルは高まってしまいます。

問題を解消するSNI

そこで問題を解決するためにSNI(Server Name Indication)が登場します。名前ベースバーチャルホストの技術が使われている場合において、SNIはドメインごとに異なるSSL証明書の運用を実現します。
具体的にはSSLセッションを確立する際、クライアントブラウザがHTTPリクエストのHostヘッダを利用して、アクセスしたいドメインをサーバーへ通知します。するとサーバーも応答すべきドメインを理解することが出来るので、名前ベースバーチャルホストの場合でも正しいドメインでHTTPS通信が出来るという仕組みです。
SNIはSSL/TLSの拡張的な仕様としてRFC(Request for Comments)にも記載されており、現在では多くのブラウザ、サーバーで対応しています。

SNIで複数のSSL証明書を運用できる説明図

3. SNI非対応の環境

SNIは前述のような課題を解決するために登場した比較的新しい技術であるため、現在ではレガシーなOSやブラウザなどではサポートされておらず、SNIを採用するSSL配信を行うWebサイトへのアクセスが出来ない場合があります。以下に代表的な環境を列挙します。

■SNI採用のWebサイトにアクセスできない環境の例
  • Internet Explorer 6以前、及びWindowsXP以前での全バージョンのInternet Explorer
  • BlackBerry ブラウザ 7.1以前
  • Windows Mobile 6.5以前
  • Android 2.x以前
  • 多くのフィーチャーフォン

既にベンダーのサポートも概ね終了しており、ユーザーシェアも1%未満のものが大半です。こうした環境からはSNIを利用したSSL通信を採用しているWebサイトへのアクセスは出来ませんが、ユーザーシェアを考慮して、Webサイト運営者側としても、アクセスのサポート対象外としてしまうことが多いでしょう。

フィーチャーフォンについては、総務省の調査によると、フィーチャーフォンのみを利用したインターネットユーザーが調査母数に対してまだ5%程度いるとされています。
例えばマーケティング目的のWebサイトではサポート対象外とする例も多いですが、公共情報を提供するWebサイトなどでは、まだフィーチャーフォンユーザーをサポートしようとする動きも見られます。今後各キャリアにて3G回線の提供終了が進んでいきますので、サポートの必要性は更に低下していくことが考えられます。

参考:各OS、ブラウザシェア:StatCounter
https://gs.statcounter.com/windows-version-market-share/desktop/japan#monthly-201902-202003
https://gs.statcounter.com/browser-market-share
https://gs.statcounter.com/os-market-share/mobile/worldwide
https://gs.statcounter.com/os-version-market-share/android/mobile-tablet/worldwide

参考:携帯電話によるネット利用率 最も高い30代は「スマホとガラケー」併用率も最高7.4%(Yahoo!ニュース)

参考:令和2年通信利用動向調査の結果(総務省)

4. CDNext標準実装のSNIでSSL配信を安価に実現

CDNでSSL配信を行う場合、多くのCDN事業者でSNIを標準仕様としています。CDN事業者としては顧客に対してそれぞれ独自ドメインでの配信とユニークなSSL証明書の利用環境を提供できる他、多くのIPアドレスを用意する必要もないため、サービス運用コストも安価に抑えられます。そのため、CDNのユーザーにとってもHTTPS通信を安価に行えることになります。

Jストリームにて提供するCDNサービス「J-Stream CDNext」も標準的にSNIによるSSL通信環境を提供します。ユーザー独自にSSL証明書を認証局より取得すれば、「J-Stream CDNext」の管理コンソールからSSL証明書を登録するだけで、SNIによるHTTPS通信を実現します。特別なオプション費用は不要です。

5. SNI非対応環境へのケア検討

SNI非対応環境に対しても通信を行いたい場合は、1つのドメインに対して1つのサーバー(1つのグローバルIPアドレス)を手配する必要があります。バーチャルホストの場合、IPベースバーチャルホストでなければいけません。
CDN事業者ではIPベースバーチャルホスト環境においてSSLを利用できるオプションを用意している場合があります。「J-Stream CDNext」もオプションとして、顧客専用のグローバルIPアドレスを提供することが可能です。これであれば非SNIでHTTPS通信を行うことが出来るので、SNIに対応していない環境を利用しているユーザーもサポート出来るようになります。

ただし前述の通り1つのサーバーにグローバルIPアドレスを追加する対応にはコストが伴いますので、一般的にこの対応はCDNのオプション費用としては高額になります。オプションの利用を検討する際には、SNI非対応環境ユーザーに対するサポートの必要性とコストの関係をよく考慮する必要があるでしょう。
また、例えばフィーチャーフォンユーザーに対してはフィーチャーフォン用Webサイトを別のドメインで用意して、HTTP通信によって閲覧できるようにする例もあります。この場合であれば、フィーチャーフォン用WebサイトについてはSSL通信の利用はできませんが、高額なオプション費用を支払う必要はありません。

6. 常時SSL化に伴うSNIの利便性

SNIの表面的なメリットは、独自ドメインによって安価にHTTPS通信を行えるようになるということです。HTTPS通信には前述のような具体的メリットと、避けられるデメリットがあるので、あらゆるWebサイト運用者は積極的にSSLの利用を検討する必要があります。

SNIはHTTPSでの通信をより安価かつ容易に実現する技術です。常時SSL化のためにグローバルIPアドレスをサーバーへ追加しなければいけない、ということではSSL化にも二の足を踏んでしまうでしょう。「J-Stream CDNext」はSNIによるSSL化を標準仕様としながら、ニーズに即したSSL化オプションを用意したり、用途に合ったWebサイト運用方法を提案したりしながらサービスを提供していきます。

以上、CDNを利用したSSL/TLS配信で一般的な仕様であるSNIの、利用時の注意点について解説しました。Jストリームでは豊富なサービス提供実績と充実のサポート体制により、CDNにおける最適なSSL通信環境の提供準備をしてお待ちしております。お気軽にお問合せ下さい。

J-Stream CDNext「料金と機能の一覧資料」をダウンロードする

サービス詳細

関連する記事一覧

Jストリームの
ソリューションに
興味をお持ちの方は
お気軽に
お問い合わせください。

登録無料!

Jストリームのサービスを活用した成功事例や、お客さまの課題解決につながるお役立ち情報などをメールでお届けしています。

メールマガジン登録