2008年7月1日火曜日

名前ベースのVirtualHostでは、複数のサーバ証明書を使えない

名前ベースのVirtualHostでは、複数のサーバ証明書を使えない。

これについての解説は、[Apache-Users 2708] Re: SSLでバーチャルホストが分かりやすい。
Apacheのマニュアル(名前ベースのバーチャルホスト - Apache HTTP サーバ)にも書いてある。

ただし、サーバ証明書以外のSSL/TLS(https)設定については、普通に各VitrualHostディレクティブで定義して使える。
ネームベースのVirtualHostでSSL/TLSを使った場合、各VirtualHostに個別のサーバ証明書を用意していても、最初に記述したサーバ証明書が使われる



VirtualHostで複数のサーバ証明書を使いたい場合は、複数のIPアドレスを使うかまたは複数のポートを使い、ルータ等でフォワーディングする必要がある。

下記は、複数のポートで個別のVirtualHostのSSLを定義する場合の例。(抜粋)
Listen 443
Listen 20443

#(中略)

<VirtualHost _default_:443>
DocumentRoot /var/www/html
ServerName example.com:10443
ServerAdmin admin@example.com

SSLEngine on
SSLCertificateFile /var/httpd/ssl/ssl/server.crt
SSLCertificateKeyFile /var/httpd/ssl/ssl/server.key

#(中略)

</VirtualHost>

<VirtualHost _default_:20443>
DocumentRoot /var/www/another_html
ServerName another.example.com:20443
ServerAdmin admin@example.com

SSLEngine on
SSLCertificateFile /var/httpd/ssl/ssl/another.crt
SSLCertificateKeyFile /var/httpd/ssl/ssl/another.key

#(中略)

</VirtualHost>

0 件のコメント:

コメントを投稿