参照)
http://e-garakuta.net/techinfo/doku.php/linux/apache-sni
http://builder.japan.zdnet.com/etc/20402262/
http://slashdot.jp/journal/495893/%E3%82%A6%E3%82%A7%E3%83%96%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AESNI%E5%AF%BE%E5%BF%9C
あたり。
1つのIPアドレスで複数のコモンネームのSSL証明書を利用することは、従来できずSSLを有効にするためだけのために、バーチャルホストごとに別のIPアドレスを用意して充てることも多かったのですが、
- Apache httpd 2.2.12以降
- OpenSSL 0.9.8f以降
の組み合わせであれば SNI(Server Name Indication) というSSLプロトコルの拡張仕様が利用できるようになったため、1IPアドレス・複数コモンネームが実現できるようになりました。
※ただし、ブラウザ側の対応も必要。
※ただし、普通に使っているブラウザであればほとんど対応済み。
すでにディストリビューション側のパッケージでも対応しているものもあるみたいですが、opensslをソースインストールする場合、config オプションで enable-tlsext を追記する必要があります。
CentOS であれば例えばこんな感じ。
cd (openssl のソースディレクトリ) ./config enable-tlsext -fPIC shared make make test make install echo /usr/local/ssl/lib > /etc/ld.so.conf.d/openssl.conf ldconfig
その上でhttpdのコンパイルオプションでopensslのパスを上記のソース版のopensslのインストールパスを指定することで、SNIが有効になります。
自分がいつも使うのはこんな感じ。
なお、apr/apr-util についてはソースインストールしています。
./configure \
        --with-apr=/usr/local/apr/ \
        --with-apr-util=/usr/local/apr/ \
        --enable-proxy \
        --enable-proxy-balancer \
        --enable-rewrite \
        --enable-alias \
        --enable-headers \
        --enable-expires \
        --enable-module=so \
        --enable-so \
        --enable-shared=max \
        --enable-dav=shared \
        --enable-dav_fs=shared \
        --enable-ssl \
        --with-ssl=/usr/local/ssl 
後はhttpdのVirtualHostの設定でいくつか設定すれば1つのIPアドレスで複数のコモンネームのSSL証明書が利用できることを試せるはずです。

[…] + SSL 1つのIPアドレスで複数のコモンネームのSSL証明書を利用する(=SNI)。 さくらVPSにopensslインストールしてphpからhttps接続させる apache+mod_sslでSSL […]