SSL CDN


SSL CDNとは、SSL配信をサポートしたCDNのことです。

SSL CDNメリット

SSLアクセラレータ

SSL CDN使い方としては、以下の二つに分かれます:

  • オリジンサイトがSSL対応している場合
    • オリジンサイトは既にSSL対応しており、それ単体でもSSL通信可能であるが、高速化および負荷対策のためにCDNを利用する。
  • オリジンサイトがSSL対応していない場合
    • CDNをSSLアクセラレータとして利用する。つまり、SSLについてはCDNにまかせ、オリジンサイトはSSL非対応のまま運用を続ける。

後者の場合、SSL CDNは、サイトの常時SSL化のための簡便なサービスとして使用できます。つまり、CDNは、簡単に(オリジンサーバのDNS設定変更だけで)使用開始できるサービスであり、SSL証明書さえ用意できれば、数時間でWebサイトの常時SSL化が可能になります。

また、この場合、SSL運用にかかわる各種運用コスト(サーバ負荷増加、緊急パッチ当て等)増加を、CDN事業者任せにできるため、社内エンジニアの費用を低減できます。

通信の最適化(トランスコード、改ざん)対策

モバイルキャリアは、「通信の最適化」のために、イメージファイルや動画ファイルに対してトランスコード(再圧縮、情報の間引き)を行っています。この最適化は、従来、ソフトバンクモバイルのみが実施していましたが、2015年6月現在においては、ドコモ、AUともに行っているようです。

この最適化の結果、イメージファイルや動画ファイルの品質が低下し、アプリケーションによっては画像読み込み時にエラーが発生します。これを避けるためには、イメージファイル等をSSL CDNにより配信することが有効です。

SSL CDNで使用可能な証明書

SSL CDNでは、一般的に3種類のSSL証明書が使用可能です:

証明書種類 概要 ドメイン例 EV対応 ガラケー対応
顧客証明書 個客が持ち込んだSSL証明書を使用 example.jp
CDN事業者マルチドメイン証明書 CDN事業者の証明書に顧客のドメインを追加する example.jp × ×
CDN事業者ワイルドカード証明書 CDN事業者の配信ドメイン *.stream.ne.jp × ×

IPアドレス割当てとSNI

専用IPアドレス

基本的にSSLでは、1個のIPアドレスに対し1枚のSSL証明書しか使用できません。そのため、CDN事業者は、それぞれの配信サーバに特定顧客専用IPアドレスの割当てを行います。この結果、この(顧客専用IPアドレスの割当てを受ける)配信方法では、追加オプション費用が必要になります。

SNI

一方、SSLにおけるHTTPのバーチャルホスト機能であるSSL SNI(Server Name Indicator)もオプションとして利用できます。この場合、専用IPアドレスは不要であり、CDN事業者にとってもコストのかからない配信方法になります。そのため、SNIは、専用IPアドレスよりオプション費用が安価です。また、SNIを使用してもEV証明書の利用は可能です。

ただし、SNIは対応していないもの(Windows XP、Android 2.x、古めのテレビ、Java 6)があるため、SNI採用には、これら端末の切り捨て判断が必要になります。

SSL CDNの注意点

SSLとHTTPの両立

いくつかのCDNサービス(オプション)では、同じドメインでSSLとHTTPの両方を配信できないことがあります(SSL用CDN配信サーバとHTTP用CDN配信サーバが分離されている)。このようなSSL配信専用CDNは、一般的にオブジェクト配信(イメージ等のみをCDNで配信)に使用されます。

一方、このようなCDNサービスで、www.example.jpというサイトを全サイトSSL配信した場合、https://www.example.jp/のみがアクセス可能になり、http://www.example.jp/はアクセス不可になります。しかし、常時SSLにおいても、当面は、「HTTPにおいてもリクエストを受け付け、SSLに転送する」という方法が主流です。そのため、現実的には、このようなCDNでの全サイトSSLは、かなり用途を絞った場合にしか使用できません。

CNAMEとワイルドカード

一般的なCDNでは、CDN事業者が発行した配信ドメイン(例:www-example-jp.stream.ne.jp)を、DNS CNAMEにより自社ドメイン(www.example.jp)にマップして使用します。

一方、ワイルドカード証明書を使用する場合、CDN事業者が発行した配信ドメイ(https://www-example-jp.stream.ne.jp)でSSL配信が可能です。

しかし、これを自社ドメイン(www.example.jp)にCNAMEすると、端末からのSSLリクエストは、「証明書が違う」というエラーになります。つまり、端末はサイトをwww.example.jpだと思ってアクセスしますが、サイトが返す証明書はwww-example-jp.stream.ne.jpとなり、食い違いが発生します。

そのため、ワイルドカード証明書を使用する場合、自社ドメインの利用(CNAME変換)はできません。