На этот вопрос уже есть ответ здесь:
Я использую виртуальные хосты на основе имен на портах 80 и 443. Некоторые виртуальные хосты поддерживают только порт 80.У меня нет и не буду получать сертификаты для этих имен хостов.
Как настроить apache для отказа в соединении на порте 443 с одним из имен хостов?
Например:
supportsboth.example.com
имеет сертификат, может прослушивать порт 80 и порт 443
httponly.example.org
не имеет сертификата, должен быть доступен только через обычный HTTP.
В конфигурации apache есть запись настройки виртуального хоста для supportsboth.example.com
только на порту 443.
Попытка подключиться к httponly.example.com
через порт 443 заставляет Apache использовать сертификат и данные виртуального хоста supportsboth.example.com
.
Это заставляет браузер сообщать о множестве ошибок сертификатов, поскольку имена хостов не совпадают, и если пользователь все равно решит продолжить, он все равно окажется на неправильном сайте.
В идеале мне бы хотелось перенаправить на сайт HTTP, но я полагаю, что это будет зависеть от наличия действующего сертификата. Второе мое предпочтение - просто отказаться от подключения.
Приведенный ниже ответ Майкла о размещении имен с поддержкой SSL на отдельном IP-адресе мне недоступен, поскольку оба домена уже настроены на использование одного и того же IP-адреса, и я не могу их изменить.
Используйте другой IP-адрес для хостов, которые никогда не должны отвечать по SSL, и убедитесь, что Apache прослушивает порт 443 только для соответствующих IP-адресов.