У меня несколько доменов, работающих на одном компьютере, все с SSL, я пытаюсь выучить это
У меня domain1.com domain2.com domain3.com все работает.
Я хочу добиться этого:
Если пользователи будут заполнять IP-адрес поля в браузере, я хочу, чтобы пользователи перенаправлялись в Google для примера. В противном случае отображается предупреждение об отсутствии SSL. По сути, я не хочу, чтобы пользователи могли получить доступ к этому ящику с прямым IP-адресом, я хочу, чтобы они перенаправлялись в Google, все они.
Я знаю, как это сделать на apache, не знаю, как это сделать на IIS 8.5.
Большое спасибо
Есть несколько способов сделать это, в моем решении используются только встроенные модули.
Основная идея состоит в том, что для всех ваших надлежащих сайтов с контентом вы используете только привязки имени хоста. Таким образом, они недоступны с использованием IP-адреса.
Затем вы используете дополнительный сайт, который вы привязываете не к имени хоста, а ко всем IP-адресам на сервере. Этот сайт обрабатывает все запросы, которые не обрабатываются другими веб-сайтами. На этом сайте вы перенаправляете все на Google.com
Вот как это сделать. Я использую команды PowerShell, поэтому убедитесь, что у вас установлен модуль IIS-PowerShell:
Enable-WindowsOptionalFeature -online -FeatureName IIS-ManagementScriptingTools
Я использую предустановленный Default Web Site
в качестве универсального сайта убедитесь, что он привязан ко всем IP-адресам:
ls IIS:\Sites\
у вас должно получиться что-то вроде:
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
Default Web Site 1 Started %SystemDrive%\inetpub\wwwroot http *:80:
http *:80:
означает порт 80 на всех IP-адресах без имени хоста.
Вам понадобится модуль http-redirect:
Enable-WindowsOptionalFeature -online -FeatureName IIS-HttpRedirect
Теперь настройте перенаправление для всех запросов на сайт:
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/httpRedirect" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/httpRedirect" -name "destination" -value "https://www.google.com"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/httpRedirect" -name "exactDestination" -value "True"
Теперь все запросы на любые IP-адреса на сервере должны перенаправляться на google.com, теперь вы можете добавлять дополнительные сайты с привязками к именам хостов.
При работе с https все становится немного сложнее, но использование https с IP-адресом в любом случае приведет к ошибке сертификата.