[4]Windows XPのサポート終了で、SSL用のIPアドレスが不要になる

[4]Windows XPのサポート終了で、SSL用のIPアドレスが不要になる

SSL証明書は、それに対応する専用のIPアドレスがないと動作しない、ということはよく知られています。ただ、これはSSLのプロトコルの仕組みによるものでいかんともしがたい、ということは知られています。
 
そのため、同じレンタルサーバーでも、カード決済を設置するために、独自のIPアドレスが利用可能なプランでないといけなかったり、専用サーバーVPSでも2個目のSSL証明書のために、IPアドレスをもう1個注文する必要がありました。
 

SSLプロトコルのシェイクハンドは、人間の握手ほど簡単ではない。

そもそも、SSLプロトコルでは、

  • サーバーが、SSL証明書をクライアントに送信する
  • クライアントが、共通鍵を生成する。
  • クライアントが、SSL証明書に含まれる公開鍵を用いて共通鍵を暗号化する
  • クライアントが、暗号化された共通鍵を、サーバーに送信する
  • というプロセスで、共通鍵が共有されます(ハンドシェイク)。その後、暗号化通信のなかで、クライアントがバーチャルホストのドメイン名をhttps://…で指定することができます。
     

    SSL証明書は、SNIの拡張機能があってもなくても、サーバーとブラウザの要件さえ整えば動作する。

    しかし、バーチャルホストを適用するケースを考えると、IPアドレスが1個しかないので、サーバーがSSL証明書をクライアントに渡す前に、どのバーチャルホストであるかを、平文(暗号化されないテキスト)で指定する必要があります。そのようなSSLの拡張プロトコルは、2003年にSNI(Server Name Indication)という名前で考案されていました。
     
    そして、Apache 2.2.12(2009年)以降からこの機能が利用できるようになり、1個のIPアドレスで複数のSSL証明書をおくことができるようになりました。
     
    サーバー側では、

  • Apacheのバージョンが2.2.12以降
  • OpenSSLのバージョンが0.9.8f以降
  • OpenSSLでSNIを有効にしてビルドし、その上でApacheをビルドする
  • という条件が具備されていることが必要です。ただ、これら条件は、サーバーの設定を変更するだけですから、それ程大きな問題ではないと思われます。
     

    OpenSSLの脆弱性の対応で、SNIが動作するバージョンにはなっているはずだ。

    一番大きいのは、クライアント(ブラウザ)側の要件です。主要なブラザでの対応状況を見ると、下記のようになっており、Windows XP + Internet Exploreの組み合わせで、SNIが機能しないことがわかります。
     
     
     
    OS/ブラウザの対応状況
    Windows XP/Internet Explorer が対応しない、Mozilla Firefox 2.0 以降か、Google Chrome 6以降なら対応
    Windows Vista 以降/Internet Explorer 7以降、Mozilla Firefox 2.0 以降、Google Chromeが対応
    Mac OS X 10.5.6 以降/Safari 3.0 以降が対応
    iPhone・iPod touch/iOS 4.0以降のSafariが対応
    Android/Android 3.0 以降のAndroidブラウザが対応
     
    この表からわかるように、Winodws XPのサポートの有効期限が切れたことがきっかけで、IPアドレスを増やさずにSSL証明書を設置できるということが、現実味をおびてきました。
     

    SSLのプロトコルでは、ブラウザによって動作するしないということがおこりうる。

    Joe’sでは、共用サーバーでも一部のサーバーは既にSNIの機能が利用可能です。VPS等、ご自身でroot権限を管理している場合も実現可能です。是非トライしてみてください。
     
    SNIの機能について、ご質問などございましたら、Joe’s SSL市場で伺います。お気軽にご相談下さい。