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変換)はできません。