[目次]
常時SSL化のワードが飛び交う昨今、常時SSLを自分のサイトでも取り入れてみようと、既に動き出している方も多いと思います。
しかし、いざ常時SSL化をしてみようと思っても、自分のところは、複数サイト(マルチサイト)運用、あるいは複数サーバーで運用しているから常時SSLはちょっと大変・・・と二の足を踏んでいる方はいませんか?
レンタルサーバーに依っては1サーバーにつきSSL証明書は1枚しか設定できないので、1台のサーバーで複数サイトを運用している場合、常時SSL化するにはメインとするサイト以外は、新しいサーバーを用意しサイトを移行させないといけません。また、複数サーバーでサイトを運用している場合は、常時SSL化するにはサーバー台数分のSSLサーバー証明書を用意しなくてはいけないので、膨大な費用と手間がかかってきます。
しかし実は、サーバーやSSLサーバー証明書によっては、これらの問題を解決できる便利な機能があるのです。
そこで今回は、複数サイト運用や複数サーバー運用でのSSL導入で役立つ機能についてご紹介します。
1台のサーバー上で複数のSSLサイト運用が可能な「SNI」
まず「SNI」からご紹介します。
SNI (Server Name Indication)とは、1台のサーバーで複数のSSLサーバー証明書を利用できる、SSLの拡張仕様のひとつです。
従来のSSLの仕組みでは、1つのサーバーに複数のドメイン名を設定(バーチャルドメイン設定/マルチドメイン設定)できても、SSLサーバー証明書は1枚しか設定できませんでした。
そのため、複数のサイトを1台のサーバーで運用していた場合、常時SSL化するには、どれか1サイト(基本的にメインドメインのサイト)しかできないので、他のサブドメインのサイトはサーバーを新たに用意してサイト移行をする必要があります。
なぜこのようなことが起こるのか。
原因は従来のSSL通信技術とそれを受け取るサーバーの仕組みにあります。
従来のSSL通信は、はじめにサーバー(IPアドレス)に設定されたSSLサーバー証明書に対して通信経路を確立させ、その中でデータをやり取りしているため、SSLサーバー証明書は設定された1枚しか利用することが出来ないのです。
そこでSNIの登場です。
SNIに対応したサーバーなら、従来であれば1つのサーバーにつき1枚しか設定できなかったSSLサーバー証明書が、ドメイン名(URL)単位で利用できます。
また、ドメイン名毎に異なるSSLサーバー証明書を設定することもできます。
仕組みとしてはSSL通信時に通信対象となるドメイン名を通知することで、サーバー側はアクセス毎にどのSSLサーバー証明書を利用すべきかを判別します。
これによって、1台のサーバーでもドメイン名の数だけSSLサーバー証明書の利用が可能になるのです。
ですので、マルチサイトの場合はそれぞれのサブドメインのSSLサーバー証明書を取得・設定さえすれば、今までと同じように運用方法は変えず、常時SSL化でき、費用面、労力面でのコストも大幅に削減することができます。
しかし、良いことばかりのSNIに思えますが、一部の古いブラウザでは対応されないなど利用の際に少し注意が必要です。
また、ドメイン名に対して通信を確立するSNIは、ドメインごとにSSLサーバー証明書(独自SSL)の取得と設定が必要です。「常時SSLにはどれを使う?今さら聞けないSSL証明書の種類と違い」の記事でもご紹介したように、独自SSLは、共有SSLと違い信頼性が高い分、取得に手間やコストが掛かる場合もあるので、その点も忘れないようにしましょう。
1枚のSSL証明書で複数ドメインの設定が可能な「SANs」
次にご紹介するのは、「SANs」という機能です。
SANs(Subject Alternative Names)とは、SSLサーバー証明書の拡張機能で、SSL証明書にコモンネームとは別に拡張領域を設け、その拡張領域にドメイン(FQDN ※1)を個別に複数設定することが可能です。
原則、SSLサーバー証明書は1つのドメイン(FQDN)に1枚必要とされていますが、SANsを利用することで、1枚の証明書で複数のドメイン(FQDN)を設定することができるようになります。
後述する2wayもこのSANsの機能を応用しており、最近では多くの証明書がSANsを標準機能として提供するようになってきています。
また、ベンダー(証明書ブランド)によっては、SANsを用いた機能を「マルチドメイン機能(※2)」と呼び、SANs対応の証明書を「マルチドメインSSL証明書」と言うこともあります。
SANsに対応している証明書を選べば、1枚の証明書で複数サーバーのドメインを設定することが可能なので、手間や費用といったコストを抑えて常時SSL化ができます。
さらに、SSLサーバー証明書の更新手続も1枚にまとめられるので、手続の簡易化、更新忘れの防止のメリットもあります。
また、複数サブドメインを運用する場合(ドメインは同じでホスト名が複数ある場合)は、ワイルドカードSSL証明書の方が適しています。ワイルドカードSSL証明書は、コモンネームにワイルドカード(*)を適用することで、1枚の証明書で複数のサブドメインが設定できます。あらかじめ指定したコモンネームとドメイン部分は同じにしないといけないですが、ドメイン数が増えても追加料金などは発生せず、ドメインの設定数に制限がないのが特長です。
SANs(マルチドメインSSL証明書)とワイルドカードSSL証明書、どちらを利用するのが最適かは、導入したいサイトの運用形態によって分かれます。
複数サブドメイン(ドメインは1つ、ホスト名は複数)で運用している場合はワイルドカードSSL証明書を、複数ドメインで併用運用している場合はSANsを選ぶといいでしょう。
※1 FQDN・・・ホスト名、ドメイン名(サブドメイン名)などすべてを省略せずに指定した記述形式のこと。例えば、「www.example.com」(「www」から含めて記述)など。
※2 マルチドメイン機能・・・ベンダーによっては、wwwオプション、SANs自動登録とも呼ばれる。
wwwあり/なしでもSSL通信が可能な「2way」機能
最後にご紹介するのは、「2way」という機能です。
これは、コモンネームに指定したドメイン(FQDN)であれば、「www」あり/なしに限らず、どちらでもSSL通信を可能にする機能のことです。
これは、SANs(上記で説明)の機能を利用したものです。
例えば、「www.example.com」というコモンネームで申請したとします。
その場合、
- https://www.example.com
- https://example.com
のどちらのURLでアクセスしてもSSL通信ができるようになります。
これが、2wayに対応していない証明書だと、「www」なしのURLでアクセスすると、エラーが出ることになります。
しかし、SSLサーバー証明書のブランドによっては2wayに対応していない場合や制限がある場合があり、2wayを利用するにはコモンネームの申請時に「www」ありのドメイン(URL)で申請しておかないと、「www」なしのURLではSSL通信できない証明書もあります。
このように証明書ブランドによっては、最初に「www」ありのコモンネームでの申請が必要な場合もあるので、2wayを利用する際は証明書の仕様をよく確認しておきましょう。
さらに、WEBブラウザの旧バージョンや、フューチャーフォンなどの従来の携帯電話端末では、一部2wayに対応していないことがあります。
SANsに対応しているSSLサーバー証明書なら、2wayにも対応していることが多いので、同時に設定しておくと便利です。
この記事のポイント
- 1台のサーバーで複数サイトを運用している人は、複数のドメインにSSL証明書を適用できる「SNI」の機能が最適
- 複数サーバーでサイトを運用している人は、1枚のSSL証明書を複数ドメインに適用できる 「SANs」対応のSSL証明書の利用が最適
- サイト運用を複数のサブドメインでしている人は、1枚のSSL証明書でいくつでもサブドメインに適用できる「ワイルドカードSSL証明書」の利用が最適
- 「2way」に対応している証明書では、wwwの有無に関わらずSSL通信が可能だが、ベンダーによって設定が少し異なるので確認が必要