1

У меня есть несколько виртуальных хостов на моем сервере, скажем, я обслуживаю

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, не имея предварительно действующего сертификата соответствия?

1 ответ1

0

Как я могу решить эту проблему самостоятельно (CentOS, Apache 2.4), с помощью общей страницы (invalidssl.example.com) с действующим сертификатом SSL (получил бесплатный от Let's Encrypt) и установите его в конфигурации по умолчанию. Таким образом, любые запросы https к домену, отличному от ssl, будут отображать ту общую страницу, которая содержит приятное сообщение об ошибке.

Чтобы ответить на ваш вопрос:

Единственный способ предоставить контент посетителю (будь то страница или прямой ответ), запрашивающему страницу через https, не вызывая предупреждения браузера, - это ответить действительным сертификатом SSL для запрошенного домена. Лично я не вижу причин, по которым у вас возникла бы эта проблема, поскольку бесплатные SSL-сертификаты в настоящее время легко доступны (посмотрите на Let's Encrypt !).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .