Отключить откат SSL в Apache2 или перенаправление без соответствующего сертификата

Отключить откат SSL в Apache2 или перенаправление без соответствующего сертификата

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

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

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

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

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

Связанный контент