Я использую виртуальные хосты на основе имен на портах 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-адресов.