名前ベースの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 件のコメント:
コメントを投稿