VirtualHost + SSL
昨日の続きで、名前ベースのバーチャルホストで SSL が使えるようにします。
バーチャルホストの設定ファイルを記述
ポート 80(http) と 443(https) それぞれに対して、バーチャルホストを設定します。http 用と https 用とで、内容が同じになる部分を二箇所に書くのはイヤなので、http/https で設定が異なる部分と、共通する部分を分けて、それぞれ以下のファイルに記述します。
- conf.d/vhosts/vhosts.conf バーチャルホストの設定
- conf.d/vhosts/ssl.part バーチャルホストのSSL設定
- conf.d/vhosts/aaa.bbb.ccc.part サーバ aaa.bbb.ccc の http/https 共通部分の設定
- conf.d/vhosts/ddd.eee.fff.part サーバ ddd.eee.fff の http/https 共通部分の設定
conf.d/vhosts/vhosts.conf
# ポート 80 と 443 に対するアクセスを名前ベースのバーチャルホストで処理する NameVirtualHost *:80 NameVirtualHost *:443 # http://aaa.bbb.ccc/ 用の設定 <VirtualHost *:80> Include conf.d/vhosts/aaa.bbb.ccc.part ErrorLog logs/aaa.bbb.ccc.error_log CustomLog logs/aaa.bbb.ccc.access_log combined </VirtualHost> # https://aaa.bbb.ccc/ 用の設定 <VirtualHost *:443> Include conf.d/vhosts/ssl.part Include conf.d/vhosts/aaa.bbb.ccc.part ErrorLog logs/aaa.bbb.ccc.error_log CustomLog logs/aaa.bbb.ccc.access_log combined CustomLog logs/aaa.bbb.ccc.ssl_request_log ssl_request </VirtualHost> # http://ddd.eee.fff/用の設定 <VirtualHost *:80> Include conf.d/vhosts/ddd.eee.fff.part ErrorLog logs/ddd.eee.fff.error_log CustomLog logs/ddd.eee.fff.access_log combined </VirtualHost> # https://ddd.eee.fff/ 用の設定 <VirtualHost *:443> Include conf.d/vhosts/ssl.part Include conf.d/vhosts/ddd.eee.fff.part ErrorLog logs/ddd.eee.fff.error_log CustomLog logs/ddd.eee.fff.access_log combined CustomLog logs/ddd.eee.fff.ssl_request_log ssl_request </VirtualHost>
conf.d/vhosts/ssl.part
<VirtualHost> ディレクティブ内に含める SSL の設定です。conf.d/ssl.conf からコピーして作成します。
# SSL configurations
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
LogFormat "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" ssl_request
conf.d/vhosts/aaa.bbb.ccc.part
サーバ aaa.bbb.ccc の設定です。http/https で共通の設定です。
ServerName を aaa.bbb.ccc にします。
ServerName aaa.bbb.ccc DocumentRoot /home/vhosts/aaa.bbb.ccc
conf.d/vhosts/ddd.eee.fff.part
サーバ ddd.eee.fff の設定です。http/https で共通の設定です。
ServerName を ddd.eee.fff にします。
ServerName ddd.eee.fff DocumentRoot /home/vhosts/ddd.eee.fff