Рассмотрим машину Win 2008 SP2 с IIS7. Задача состоит в том, чтобы применить сертификат и имя хоста к одному и тому же сайту на этом компьютере. Заголовки хоста сайта должны бытьabc.123.example.com
Первым шагом была установка .pfx в личный магазин, которая прошла успешно.
IIS7 находит сертификат доступным, но не позволяет вводить имя хоста. Текстовое поле имени хоста ВСЕГДА отключено / неактивно, даже до выбора моего сертификата. Я даже удалил привязку порта 80 по умолчанию.
Вопрос: как я могу установить имя хоста для этого сайта? Дело в том, что этот сертификат является сертификатом подстановочного знака? Я понимаю, что запрос SSL поступает на веб-сервер, а заголовок узла в пакете шифруется. Почему тогда IIS6 позволяет указывать заголовок узла, а IIS7 нет?
Обновление: сертификат не является частью проблемы. Я создал новый сайт на машине, и при выборе привязки https текстовое поле имени хоста отключается.
источник
Это работает в графическом интерфейсе ...
Просто убедитесь, что «понятное имя» сертификата, который вы устанавливаете, совпадает с именем мультидомена, которое вы указали для сертификата.
то есть. * .companydomain.com
если для сертификата * .companydoman.com указать «Хорошее понятное имя», то при установке сертификата в IIS оно затеняет поле заголовка имени хоста.
Если вы используете * .companyname.com в качестве дружественного имени, вы золотой.
Boom.
источник
Краткий ответ заключается в том, что к каждому IP-адресу может быть привязан только один сертификат, поэтому привязка сертификата будет применяться независимо от того, какое имя хоста направлено на этот IP-адрес. Возможность указать имя хоста подразумевает, что у вас может быть несколько комбинаций имени хоста и сертификата на одном IP-адресе и порте (как вы можете с записями не-SSL), но это не так, поэтому поле недоступно.
Более полное объяснение состоит в том, что SSL шифрует ваш трафик, и частью этого трафика являются заголовки HTTP, отправляемые браузером на сервер. Одним из таких заголовков может быть заголовок «Host», который IIS использует для определения сайта, загружаемого с запросом. Поскольку сертификат должен быть загружен для установления безопасного соединения ДО того, как заголовки запроса будут отправлены, IIS должен выбрать сертификат на основе только IP-адреса и номера порта, оставив заголовок «Host» в холодном состоянии как фактор при определении какой сайт загружать, чтобы они не позволяли вам войти.
Вот статья, которая более подробно описывает внутреннюю работу SSL-соединения .
источник
Ответ SSLShopper у меня не сработал, потому что он оставил привязку без заголовка хоста, и вы не могли удалить эту привязку, не разорвав соединение с сертификатом. Вот метод, который я использовал, чтобы заставить его работать:
Обратите внимание, что в этом ответе предполагается, что ваш сертификат уже создан, добавлен в хранилище сертификатов и добавлен в IIS. Это также предполагает, что вы не хотите никаких других привязок к вашему сайту, кроме SSL.
Во-первых, нам нужно собрать некоторую информацию. Нам нужен хеш, идентификатор приложения и имя хоста.
меры
Откройте командную строку
Сохраните хэш сертификата и идентификатор приложения
В командной строке:
Примечание. Appcmd.exe можно найти в каталоге c: \ windows \ system32 \ insetsrv. Возможно, вам придется оказаться в этой папке, чтобы эта команда работала.
источник
Принятый ответ здесь сбивает с толку, и я не думаю, что это правильно для вопроса. Это не должно быть принятым ответом.
Проблема
У вас есть подстановочный SSL, например,
*.ipsum.com
и сертификат установлен, но вы не можете выбрать имя узла для сайта в IIS, когда пытаетесь добавить привязку HTTPS, потому что текстовое поле неактивно.Решение
Ваш подстановочный SSL-символ можно использовать с любым поддоменом, вам просто нужно убедиться, что вы начинаете с Дружественного имени сертификата
*
. Я предпочитаю использовать то же понятное имя, что и подстановочный домен, например,*.ipsum.com
но вы можете называть его как угодно, имеющее звездочку:*foo
Я дал свой сертификат неправильное имя, помогите!
Начиная с Windows 8 или Server 2012, вы можете ввести
certlm.msc
в меню «Пуск» управление сертификатами для локального компьютера. В предыдущих версиях Windows вам нужно будет сделать что-то более замысловатое:mmc.exe
с началаFile
меню и выберитеAdd/Remove Snap-in...
или нажмите(Ctrl-M)
Certificates
оснастку и нажмите,Add >
затем выберите,Computer Account
затемLocal Computer
в последующих диалоговых окнах нажмите, затем нажмитеFinish
,OK
чтобы закрыть окно оснасток.В главном окне разверните
Certificates (Local Computer)
тоPersonal
тогдаCertificates
и вы будете иметь возможность щелкнуть правой кнопкой мыши сертификат, нажмите ,Properties
где вы можете обновить понятное имя.Закройте и откройте IIS Manager, после чего вы сможете установить имя своего хоста.
источник
На самом деле, вы можете добавить заголовок хоста через графический интерфейс, но это зависит от того, как называется сертификат ... если я дам понятное имя * .xyz.com своему сертификату с подстановочными знаками и выберу этот сертификат, то я возможность использовать графический интерфейс. если понятное имя что-то наподобие xyzwildcard, и я выбрал это, тогда оно затеняет поле hostheader ...
Странно странно
источник
Некоторые машины не позволяют вам редактировать имя хоста, если протокол изменяется на https или после добавления SSL-сертификата. IIS временами может быть сварливым.
Эта команда Windows создаст новую привязку с протоколом «https», на порту «443», именем хоста «subdomain.domain.com», именем сайта «site name». Измените эти значения (в кавычках) в соответствии с вашими требованиями. Затем вам нужно будет удалить старую привязку, если она использует порт 443.
C:>
cd C:\Windows\System32\inetsrv
C: \ Windows \ System32 \ Inetsrv>
appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']
источник
Имя хоста можно добавить только в том случае, если имя выбранного сертификата будет похоже на имя хоста * .xyz.com и вы можете переименовать понятное имя сертификата в * .xyz.com из mmc (оснастка).
источник
Я думаю, что эта статья в КБ позволит пролить свет на эту проблему. В двух словах, заголовки HTTP 1.1 хоста не поддерживаются при использовании SSL.
Вероятно, то, что вам нужно, это использовать ключ метабазы SecureBindings. Например, cscript.exe adsutil.vbs set / w3svc / websiteID / SecureBindings "ip.ip.ip.ip: 443: abc.123.mysite.com
источник
Почему MS забирает этот OUT GUI, мне не понятно, поскольку, если у вас есть приложение ASP.NET, использующее файлы лицензий (licx), ваш сайт не будет работать, поскольку он отображается в виде IP-адреса вместо имени домена. , Они должны перестать предполагать на каждой новой версии своего программного обеспечения - ИТ-специалисты не должны присматривать за Microsoft! Geez!
источник
Я создал самозаверяющий сертификат на * .testcompany.com, я выбрал вновь созданный (начиная с *) в раскрывающемся списке «Изменить сертификат SSL», получил текстовое поле имени хоста, создал имя хоста как «webapi.b2c». .com»,
Я обновил файл hosts в C: \ Windows \ System32 \ drivers \ etc 127.0.0.1 webapi.b2c.com
Теперь я могу просматривать сайт как « https://webapp.b2c.com/ ».
источник