У меня два сайта: 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 *
На сайте Train есть:
http Train 80 *
http: // работает для train, но не для prod (для которого включен флаг SSL), а https: // работает для обоих, за исключением того, что https://train.site.com загружает рабочий сайт вместо обучающего.
Это наверное глупый вопрос, но как мне изменить привязки, чтобы https://train.site.com не работает или хотя бы перенаправляет на http: //? Если кто-то случайно наберет https: //, я не хочу, чтобы он начал возиться с рабочим сайтом, думая, что он проходит обучение.
У меня есть смутное представление о том, почему он это делает, но не знаю, как это исправить, не нарушая производства.
Ваш prod
site принимает все https-соединения на всех IP-адресах и обслуживает их независимо от заголовка хоста, представленного клиентом.
Чтобы изменить эту привязку так, чтобы она принимала только соединения с правильным заголовком хоста, вам нужно отключить инструменты командной строки IIS. Удалите существующую привязку https, которая принимает все запросы, затем запустите что-то вроде этого в командной строке (с эскалацией UAC), заменив мое предположение об имени сайта IIS на правильную информацию:
cd \windows\system32\inetsrv
appcmd set site /site.name:"prod" /+bindings.[protocol='https',bindingInformation='*:443:prod.site.com']