Ссылки как ответы - не лучший способ сделать это, потому что часто эти ссылки становятся холодными. Вот краткое изложение ответа, опубликованного выше, а также подтверждающая информация из других источников.
Когда дело доходит до SSL, заголовки хостов действительно остаются на холоде. Цель SSL - зашифровать ваш трафик, и частью этого трафика являются заголовки HTTP, отправляемые браузером на сервер. Одним из таких заголовков может быть заголовок «Host», который IIS использует для определения сайта, загружаемого с запросом. Поскольку сертификат должен быть загружен для установления безопасного соединения ДО отправки заголовков запроса, IIS должен выбрать сертификат на основе только IP-адреса и номера порта, что делает заголовок узла бесполезным. Это, однако, не освобождает нас от необходимости соблюдать STIG v6724, поскольку оно относится к конфигурации сайта IIS. Таким образом, вместо того, чтобы позволять вам вводить информацию, даже если она бесполезна, Microsoft пытается опередить вас, не позволяя вообще вводить ее. Однако есть способ обойти это.
Обратите внимание, что в этом ответе предполагается, что ваш сертификат уже создан, добавлен в хранилище сертификатов и добавлен в IIS. Также предполагается, что вы не хотите никаких других привязок к вашему сайту, кроме SSL.
Во-первых, нам нужно собрать некоторую информацию. Нам нужен хеш, идентификатор приложения и имя хоста.
- Откройте IIS, выберите свой сервер и дважды щелкните «Сертификаты сервера» в нижней части.
Обратите внимание на адрес «Кем выдан». Это наше имя хоста. Сохраните это.
- Выберите свой сайт
- Свяжите свой сайт с портом 80, используя протокол http
- Удалить все остальные привязки
- Свяжите свой сайт с портом 443 по протоколу https
Открыть командную строку
netsh http show sslcert
Сохраните хэш сертификата и идентификатор приложения
- Удалите привязку https на вашем сайте
В командной строке:
netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>']
ПРИМЕЧАНИЕ. Appcmd.exe находится в каталоге c: \ windows \ system32 \ insetsrv. Возможно, вам понадобится находиться в этой папке, чтобы эта команда работала.
- Удалите http-привязку с вашего сайта
ПРИМЕЧАНИЕ. Вы можете оставить привязку http, если хотите, чтобы ваш сайт автоматически перенаправлялся на https, но это уже другая тема.