Почему этот заголовок хоста переходит на другой сайт?

У меня есть два сайта: Prod и Train

В моем файле hosts у меня есть две записи:

xxx.xx.xxx.xxx    prod.site.com  
xxx.xx.xxx.xxx    train.site.com

У меня есть два отдельных сайта, настроенные в IIS7, Prod и Train.

Сайт Prod имеет следующие привязки:

http   Prod   80   *
https         443  *

На сайте поезда есть:

http   Train  80   *

http: // работает для train, но не prod (для которого включен флаг require SSL), а https: // работает для обоих, за исключением того, что https://train.site.com/ загружает рабочий сайт вместо обучающего.

Это, вероятно, глупый вопрос, но как я могу изменить привязки, чтобы https://train.site.com/ не работал или, по крайней мере, перенаправлял на http: //? Если кто-то случайно наберет https: // Я не хочу, чтобы они начали возиться с производственным сайтом, думая, что они обучаются.

У меня есть смутное представление о том, почему это происходит, но я не знаю, как это исправить, не нарушая производство.

1 ответ

Решение

Твой prod сайт принимает все https-соединения по всем IP-адресам и обслуживает их независимо от заголовка хоста, представленного клиентом.

Чтобы изменить эту привязку, чтобы принимать только те соединения, которые имеют правильный заголовок узла, вам нужно отключить средства командной строки IIS. Удалите существующую привязку https, которая принимает все запросы, а затем запустите что-то подобное в командной строке (UAC-escalated), подставив мое предположение о имени сайта IIS для правильной информации:

cd \windows\system32\inetsrv
appcmd set site /site.name:"prod" /+bindings.[protocol='https',bindingInformation='*:443:prod.site.com']
Другие вопросы по тегам