Apacheの設定を変更し、単一IPアドレス上で複数のSSLサイトを運用する

文:Vincent Danen(TechRepublic)
翻訳校正:村上雅章・野崎裕子
2009/10/26 08:00

SNI(Server Name Indication)という、SSLプロトコルに対する拡張機能がApacheのバージョン2.2.12からサポートされるようになった。そこでこの機能を利用するための方法について紹介する。

 Apacheのバージョン2.2.12以降では、SNI(Server Name Indication)という、SSLプロトコルに対する拡張機能がサポートされているため、名前ベースのHTTPサイトを設定する場合と同じように名前ベースのHTTPSサイトを設定することが可能になっている。本記事では、Apacheのこの機能について紹介する。

 Apache Webサーバがバージョンアップし、成熟していくに伴い、新機能の追加やバグの修正が行われてきている。そして、バージョン2.2.12で追加された機能のうち、最も重要なものはおそらく、単一IPアドレス上で複数のSSLサイトを運用できるようにするという、長らく持ち望まれていた機能だろう。

 これまでは、特定のIPアドレスに対してSSL対応のWebサイトを割り当てた場合、そのサイト1つしかSSL対応のWebサイトを運用することができなかった。つまり、IPアドレスが2つあるのであれば、運用できるSSL対応Webサイトの数も2つまでとなるわけである。このことは今までに多くの嘆きとイライラを引き起こしてきていた。

 IPアドレスが2つある場合、通常のHTTPサイトであれば双方の、あるいは一方のIPアドレスに複数のサイトを割り当てることができるものの、HTTPSサイトはそれぞれのIPアドレスに1つずつしか割り当てることができない。さらに苛立たしいことに、www.example1.comとwww.example2.comを同一のIPアドレスに割り当てた場合、example1.comにHTTPSサイトが存在していると、https://www.example2.com/にアクセスしてもhttps://www.example1.com/にアクセスしたことになってしまう。つまり、混乱を生み出すことなくHTTPSサイトを運用したいという場合、単一のIPアドレスにはサイト(HTTPサイトかHTTPSサイトかにかかわらず)を1つしか割り当てられなかったわけである。

 しかし、Apacheのバージョン2.2.12以降ではSNIという、SSLプロトコルに対する拡張機能がサポートされるようになったため、その状況は一変した。これによって名前ベースのHTTPサイトを設定する場合と同じように、名前ベースのHTTPSサイトを設定できるようになったのである。つまり、5つのSSLサイトを運用する必要があっても、用意するIPアドレスは1つだけでよくなるというわけだ(もちろん、Apacheのバージョン2.2.12以降を使用するという条件はある)。

 とは言うものの、以下の条件を満たしている必要がある。

  • 当然のことであるが、Apacheのバージョンは2.2.12以降でなければならない。
  • また、OpenSSLのバージョンは0.9.8f以降でなければならず、TLS拡張オプションを指定した状態でビルドされていなければならない。
  • さらに、ApacheはOpenSSLの上記のバージョンを用いてビルドされていなければならない。ApacheはOpenSSLの適切なバージョン(TLS拡張サポートを含んだバージョンのOpenSSL)を検出すると、SNIのサポートを有効化するようになっている。

 ただし、SNIはすべてのブラウザがサポートしているわけではない。とは言うものの、現在一般的になっているほとんどのブラウザはサポートしている。また、かなり以前からサポートしているブラウザもある。例を挙げると、Firefox 2.0以降やOpera 8.0以降、Internet Explorer 7.0以降(残念なことに、Vistaで動作するもののみである)、Google Chrome、Safari 3.2.1(残念なことに、Mac OS X 10.5.6以降で動作するもののみである)がある。

記事に関係する情報をコメントでお寄せください

ニックネーム : CNET_IDにログインしてコメントする

コメント本文(必須) :
  • 新着記事
  • 人気記事
  • 特集
  • ブログ