У меня есть несколько виртуальных хостов на моем сервере, скажем, я обслуживаю
www.example.com
sub.example.com
www.example.nl
В моем конфиге DNS все указывает на один и тот же сервер.
В конфигурации apache2 есть конфигурационный файл по умолчанию для http и один для https, а также дополнительные vhosts для дополнительных сайтов. Я хочу, чтобы все близкие совпадения были перенаправлены на www.example.com
. Все конкретные сайты имеют сертификат.
Так что мои файлы выглядят так
000-default.conf (redirects to https://www.example.com)
default-ssl.conf (serves https://www.example.com)
sub.example.com.conf (redirects to https://sub.example.com)
sub.example.com-ssl.conf (serves https://sub.example.com)
www.example.nl.conf (redirects to https://www.example.nl)
www.example.nl-ssl.conf (serves https://www.example.nl)
Проблема теперь в том, что любой другой запрос (скажем, для be-creative.example.nl
) по умолчанию принимает первую загруженную конфигурацию. Это работает для http (000-default
будет соответствовать и перенаправлять), но не работает для https, потому что у меня нет действительного сертификата, загруженного для be-creative.example.nl
. Поэтому я не могу ни перенаправить, ни обслуживать действительную страницу.
Если я отключаю default-ssl.conf
, запрос будет соответствовать sub.example.com-ssl.conf
и неправильный сертификат будет по-прежнему обслуживаться.
Вопрос: Как я могу элегантно обработать эти запросы, для которых у меня нет сертификата? Как я могу перенаправить на http, не имея предварительно действующего сертификата соответствия?