Назад | Перейти на главную страницу

Как запретить HTTPS-запросы для виртуальных хостов без поддержки SSL переходить к первому виртуальному хосту с поддержкой SSL (Apache-SNI)

Надеюсь, заголовок понятен.

Как предотвратить отправку HTTPS-запросов для виртуальных хостов без поддержки SSL на первый виртуальный хост с поддержкой SSL (настройка - Apache-SNI).

Например, используя мою сокращенную конфигурацию ниже, запросы на https://example.com (виртуальный хост без SSL) обслуживаются Apache на виртуальном хосте с поддержкой SSL https://example.org. Я хотел бы отключить это поведение и, возможно, ответить соответствующим кодом ответа HTTP (не уверен, что это такое).

Возможно, это даже невозможно, но я подумал, что спрошу.

# I actually have a SNI setup, but it's not demonstrated here.
# I don't think it's relevant in this situation.

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName example.org
</VirtualHost>

<VirtualHost *:443>
    ServerName example.org
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
</VirtualHost>

РЕДАКТИРОВАТЬ: Может быть, правило mod_rewrite в первом ssl-vhost?

Как говорят документы Apache, когда нет ServerName совпадает с именем хоста, указанным в веб-запросе, первое VirtualHost будет использоваться соответствующая комбинация IP / порта.

Таким образом, вам просто нужно предоставить виртуальный хост по умолчанию, который не обслуживает контент или контент по вашему выбору, и он должен быть первым, который анализируется Apache при загрузке своей конфигурации.

Если вы вообще не хотите, чтобы определенные хосты были доступны через https, поместите их на отдельный IP-адрес, на котором вы настроили Apache, чтобы Listen на порт 443.

Я знаю, это было давно ... Но как насчет SSLStrictSNIVHostCheck вариант. Насколько я понимаю, это решает вашу проблему.