知り合いのドメインをいくつかホストしているのだけど、各ドメイン毎に SSL 接続が出来る様に SNI (Server Name Indication) を導入した。
Gentoo は標準では SNI をスムースに受け入れる様には config が作られていなかったので標準 config から一部を修正。
/etc/apache2/vhosts.d/00_default_ssl_vhost.conf 内にあった Listen を httpd.conf に移して、 NameVirtualHost で 443 を受け付けるようにする。
httpd.conf
<ifdefine SSL>
LoadModule ssl_module modules/mod_ssl.so
Listen 443
NameVirtualHost *:443
SSLStrictSNIVHostCheck off
</ifdefine>
あとは各 vhost ごとに SSL の証明書を作成する。
openssl genrsa 2048 > some.domain.key
openssl req -new -x509 -nodes -sha1 -days 365 -key some.domain.key > some.domain.crt
SSL やるにはドメイン毎にアドレスが必要だというのは半ば常識化していたけど、Apache は 2.1.12 から SNI がサポートされている。
クライアントは一部サポートしていないものがあるけど、それはユーザに使わないようにお願いすれば良いのでたいした問題ではないだろう1。
ただし、SNIはすべてのブラウザがサポートしているわけではない。とは言うものの、現在一般的になっているほとんどのブラウザはサポートしている。また、かなり以前からサポートしているブラウザもある。例を挙げると、Firefox 2.0以降やOpera 8.0以降、Internet Explorer 7.0以降(残念なことに、Vistaで動作するもののみである)、Google Chrome、Safari 3.2.1(残念なことに、Mac OS X 10.5.6以降で動作するもののみである)がある。
参考:
Apacheの設定を変更し、単一IPアドレス上で複数のSSLサイトを運用する
Apache2/SSL and Name Based Virtual Hosts
- Google でさえ、 IE6 や NN2 のサポートを切ってるくらいだし。 [↩]
Related posts:


:







No user commented in " Apache SNI を導入してみた "
コメントをフィードする comment rss / トラックバックするコメントする