SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【apache】SNI(Server Name Indication)でSSLをVirtual Hostsでも

SNI(Server Name Indication RFC 4366)を使えば、一つのIPアドレスで複数のサイトのSSLを実現することが可能になる。名前ベースのバーチャルホストでSSLを使えるようにする技術。

SNIが使える条件

まず、Apacheが2.2.12以降であること。SSLStrictSNIVHostCheck ディレクティブは2.2.12以降で使える。

他こまかいところ。

もちろんブラウザもSNIをサポートしていること。大体大丈夫そうだけど、WindowsXPが対応していないのが問題。

設定例

# Ensure that Apache listens on port 443
Listen 443

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# Go ahead and accept connections for these vhosts
# from non-SNI clients
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  # Because this virtual host is defined first, it will
  # be used as the default if the hostname is not received
  # in the SSL handshake, e.g. if the browser doesn't support
  # SNI.
  DocumentRoot /www/example1
  ServerName www.example.com

  # Other directives here

</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /www/example2
  ServerName www.example2.org

  # Other directives here

</VirtualHost>

参考

http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

関連するメモ

コメント