個人情報を入力するお問合せページなどを設置しているホームページでは、SSL対応がいわば必須といえるでしょう。Googleの方針ということもあり、最近は全ページSSL対応(常時SSL)することが主流になってきているようです。当社のホームページもその流れに乗って常時SSL対応したところです。ところで、レンタルサーバの機能一覧を見てみますと大きく分けて「共用SSL」と「独自SSL」とがあります。さらに、「独自SSL」には「IPアドレスベース」と「SNI SSL(ネームベース)」とに分けて記載されていることが多いようです。このあたりのところをまとめてみたいと思います。
SSLとは
SSLは、Secure Socket Layer(セキュア・ソケット・レイヤー)の略です。インターネット上でデータをやり取りするときに、データを暗号化し、第三者からデータを守るための通信技術です。特に、個人情報やクレジットカード情報などを含むデータをやり取りする場合には、第三者にデータを採取されると危険なのでSSLを用いることがとても大切なことになっています。
SSLに対応しているページは、https://~という感じにURLに「s」がついています。
さて、SSL通信をするためには、SSLサーバ証明書というものが必要になります。これは、公的認証局(CA)が発行するものです。SSLサーバ証明書の役割を簡単にまとめておきます。
- SSLを用いて送信するデータを暗号化することができる。
- SSLを利用しているwebサイトの所有者を確認することができる。
- SSLを利用しているwebサイトの所有者の信頼性を帝国データバンクなどの認証局によって証明できる。
さて、実際のSSL通信が、SSLサーバ証明書を使ってどのようになされているのか、その流れを簡単にまとめておきます。
- ユーザがブラウザを使ってウェブサイトにアクセスし、SSLでの接続を要求する。
- ウェブサーバは、SSLサーバ証明書をクライアントへ送信する。
- ブラウザはルート証明書(※1)を使って、SSLサーバ証明書を検証し、サーバから公開鍵を取得する。
- 公開鍵でプリマスタシークレット(※2)を暗号化し、サーバへ送る。
- ④で生成した共通鍵をサーバとクライアントで共有し、暗号化と復号を行ない通信する。
※1.サーバからブラウザで送られるSSLサーバ証明書が本当に信頼できるものかどうかを確認するものとしてルート証明書があります。ブラウザベンダなどはルート証明書を組み込むにあたって独自に厳しい審査をしているそうです。
※2.共通鍵を生成する基になる乱数データ
共用SSLと独自SSLとは
基本的に、1つのSSLサーバ証明書は、1つのドメインに対応します。これが基本ですが、1つのSSLサーバ証明書が、複数のドメインに対応させることもできます。簡単に言うと、1つのSSLサーバ証明書に1つのドメインが対応しているものが独自SSLです。一方、一つのSSLサーバ証明書に複数のドメインが対応しているものが共用SSLになります。
共用SSL
SSLサーバ証明書は、サイト所有者に対するものではなく、レンタルサーバ会社に対するものになります。ですから、共用SSLはサイト所有者の信頼性を証明するものとはなりません。また、URLも、レンタルサーバ会社が提供するドメインのサブドメインという形式になります。ただし、多くのレンタルサーバ会社は、無料で共用SSLサービスを提供していますので、費用を抑えるという点ではメリットがあるでしょう。
独自SSL
所有しているドメインそのままでSSL通信を行なうことができます。ただし、費用が掛かります。
IPアドレスベースとSNI SSL(ネームベース)
IPアドレスベースの場合、一つのグローバルIPアドレスに対して、一つのSSLサーバ証明書しか発行することができません。しかし、一つのグローバルIPアドレスで、複数のドメインを管理することができます。その場合、各ドメイン所有者は、独自ドメインを持っているにも関わらず、SSLサーバ証明書を取得できないということになります。
一方、SNI SSLにより、SSLサーバ証明書をドメイン名に紐付けることができるようになりました。つまり、一つのグローバルIPアドレスを持つサーバが、そのサーバが管理する複数のドメインに対するSSLサーバ証明書を取得できるようになりました。SNI SLLは低価格というメリットもあります。しかし、古いブラウザには対応していないものもあり、その点は注意が必要でしょう。
ちなみに、このサイトが契約しているFujiSSLはルート証明書がセコムで、SNI SLLにも対応しています。ただし、新たに契約する予定のmixhostはそもそも他社で取得した独自SSLの持ち込みができないようなので使えなくなってしまうのが残念です。とはいえ、mixhostでは無料の独自SSLが使えるのでそちらを活用させていただきたいと思います。