複数のバーチャルホストにSSLを設定する

時々しかやらないのでハマりました。要は普通の80のバーチャルホストとほとんど同じです。

  • NameVirtualHost *:443を設定するのを忘れないようにする。
  • Defaultはアスタリスクにする。(上記と共に)

これで複数設定できるようになります。
最低限必要な設定は以下のような感じになります。

<VirtualHost *:443>

DocumentRoot "/home/user/www"
ServerName example.com:443

<Directory "/home/user/www">
    AllowOverride All
</Directory>
RewriteEngine On
RewriteOptions inherit

ErrorLog logs/ssl_user_error_log
TransferLog logs/ssl_user_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite DEFAULT:!RC4:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES

#########################
SSLCertificateFile /etc/httpd/conf.d/ssl/user_crt.pem
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/user_key.pem
SSLCertificateChainFile /etc/httpd/conf.d/ssl/user_chn.pem
#########################

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<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

CustomLog logs/ssl_user_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

SSLProtocolとSSLCipherSuiteは時事の脆弱性云々でいろいろ調整必要だと思われます。

Last update: 2018.08.01 (水)