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