【1】apacheのDocumentRootを分けるにはVirtualHost設定を行う
VirtualHost には大きく2種類
IP based | IPベース | サーバに複数のIPアドレスを付与し、IPアドレス毎にDocumentRootを設定する | SSL設定可能 |
---|---|---|---|
Name based | 名前ベース | サーバに1つのIPアドレスを付与し、ドメイン名毎にDocumentRootを設定する | SSL設定不可 |
公式ドキュメント「Apache バーチャルホスト説明書」
http://httpd.apache.org/docs/2.2/vhosts/
【2】SSLはapacheよりも前の段階で機能する
SSLはapacheの振り分けより前の段階で機能するためIPアドレスを共有する形のNamebaseでは対応不可ということになる
ただしサブドメインはドメインとしては同じものに属するためワイルドカード証明書というもので対応可能
http://jp.globalsign.com/service/ssl/option/wildcard.html
【3】NamebaseでもSSLを利用したい場合の逃げ道
・Server Name Indicationを使う http://builder.japan.zdnet.com/news/story/0,3800079086,20402262,...
・Apacheのバージョンは2.2.12以降でなければならない。
・SNIはすべてのブラウザがサポートしているわけではない。とは言うものの、現在一般的になっているほとんどのブラウザはサポートしている。また、かなり以前からサポートしているブラウザもある。例を挙げると、Firefox 2.0以降やOpera 8.0以降、Internet Explorer 7.0以降(残念なことに、Vistaで動作するもののみである)、Google Chrome、Safari 3.2.1(残念なことに、Mac OS X 10.5.6以降で動作するもののみである)がある。
・Proxyサーバを用意しSSLはProxyサーバにまかせる
・NonIP SSLを使う(証明会社がProxyとして機能すると考えればわかりやすい)
http://jp.globalsign.com/info/news_press/2007/06/id15
【4】apacheの設定例
公式ドキュメント「バーチャルホストの例」