https://www.example.org/ で実行されているWebサイトがあります http://games.example.com/ [SSLなし]を作成するつもりです。
Ubuntu16サーバーでApache2を実行しています。
サブドメインはhttpのままにし、メインドメインはhttpsのままにしておきたい。私は何をすべきか?
現時点での設定は次のとおりです。
000-default.conf:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent "/" "https://www.example.com/"
#SSLProtocol all -SSLv2 -SSLv3
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName games.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/games
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName planets.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/2moons
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
デフォルト-ssl/conf:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName www.example.com
DocumentRoot /var/www/html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificate.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
<FilesMatch "\.(cgi|shtml|phtml|php|jpg)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
問題のドメインがfollowarmy.com
のようであるため、最初に機能するhttp://games.followarmy.com/
にアクセスしようとしました。しかし、https://followarmy.com
にアクセスすると、http://games.followarmy.com/
は機能しなくなります。その理由は、https://followarmy.com
がドメインのHSTSを設定するためです。
Strict-Transport-Security: max-age=63072000; includeSubdomains
includeSubdomains
が設定されているため、今後http://games....
にアクセスすると、ブラウザによって自動的にhttps://games....
に書き換えられます。ただし、httpsを使用してサイトにアクセスしようとすると、証明書の件名がサイトと一致しないため失敗します。 HSTSヘッダーの詳細については、 ドキュメント を参照してください。
この情報は、表示されている不完全な構成からは確認できないことに注意してください。この構成からは、SSL設定が壊れていることもわかりません。代わりに、Let's Encryptからリーフ証明書と必要な中間証明書を送信する場合は、リーフ証明書のみを送信します。詳細については、 ssllabsレポート を参照してください。