Я размещаю несколько веб-сайтов на сервере Apache (например,http://www.example.com), только один из которых имеет SSL-сертификат (например,https://www.example.net). Можно ли настроить Apache так, чтобы попытка перейти наhttps://www.example.comне приводит к обслуживанию Apachehttps://www.example.net? Если да, то как?
Я спрашиваю об этом, потому что мой хостинг-провайдер утверждает:
...если предпринимается попытка установить SSL-подключение к любому IP-адресу на сервере и для этого домена нет доступного виртуального хоста SSL, он подключается к первому доступному виртуальному хосту SSL из списка. ...если на машине имеется несколько виртуальных хостов SSL, при отсутствии совпадений он автоматически подключается к первому из них, указанному в файле httpd.conf.
решение1
По умолчанию вы вообще не получаете перенаправления, но, как заявляет ваш хостинг-провайдер: если для доменного имени не настроен ни один виртуальный хост, то по умолчанию отображается первый VirtualHost. Это после того, как вы проигнорируете предупреждения SSL, которые генерирует ваш веб-браузер...
Если вы включили SSL/TLS только для www.example.net
этого сайта, то при подключении к нему будет отображаться https://any-domain
или https://<ip-address of your server>
.
По этой причине довольно часто в качестве первого VirtualHost перед строфами VirtualHost ваших действительных доменов создается пустой веб-сайт.
<VirtualHost *:443>
ServerName localhost
DocumentRoot /var/www/empty
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.net
DocumentRoot /var/www/example.net
</VirtualHost>