Установка существующего SSL-сертификата на веб-сайте IIS, который использует hostheader

Идея состоит в том, чтобы автоматизировать привязку сертификата SSL к веб-сайту в IIS 7 или выше.

Все веб-сайты на сервере используют один и тот же IP-адрес и один и тот же порт по умолчанию. Таким образом, все они различаются по именам заголовков хостов.

Я мог бы добиться этого вручную без каких-либо проблем. Но с автоматизацией есть проблема.

Когда это делается вручную, записи конфигурации ssl в http.sys записываются как HostNameport TestName: 443, а не как ipport xx.yy.z.a: 443.

Поэтому я хотел имитировать те же ручные шаги, чтобы автоматизация работала. Но это не помогает.

Я попробовал следующие шаги.

  1. Создайте новую конфигурацию ssl в http.sys для комбинации порта имени хоста с помощью следующей команды.

netsh -% http add sslcert hostnameport = Testssl: 443 certhash = d70930bb790f89c04c728d9285b64f5fb0258fc7 appid = {01010101-0101-0101-0101-010101010101} certstorename = MY

  1. Создайте новую веб-привязку для веб-сайта, используя имя заголовка хоста.

    New-ItemProperty IIS: \ sites \ TestSite -name bindings -value @ {protocol = "https"; bindingInformation = "192.168.1.108:443:Testssl"}

    or

    New-WebBinding -Name TestSite -Protocol https -Port 443 -HostHeader Testssl -IPAddress 192.168.1.108

На двух вышеуказанных шагах новая привязка присутствует, но сертификат SSL не прикреплен к привязке.

Невозможно установить сертификат SSL для привязки с соответствующей записью порта имени хоста в конфигурации http.sys ssl?


person Baskar Lingam Ramachandran    schedule 03.10.2016    source источник
comment
1. SNI не работает на IIS 7 / 7.5. 2. Привязка SNI требует установки флага SNI.   -  person Lex Li    schedule 04.10.2016
comment
Спасибо. Я пробовал Windows 10 и Windows 2012 R2, которые имеют более поздние версии, чем 7.5, с использованием свойства WebConfiguration, и это не работает с ним. Я пробовал использовать флаг SNI со значением 1. При выполнении я не получаю никаких результатов. Но тоже без изменений. Используемые команды: Add-WebConfigurationProperty -pspath 'MACHINE / WEBROOT / APPHOST' -filter system.applicationHost / sites / site [@ name = 'Test'] / bindings / binding [@ protocol = 'https' и @ bindingInformation = '192.168.1.108: 80: testssl'] -name bindingInformation -value 192.168.1.108:443:testssl   -  person Baskar Lingam Ramachandran    schedule 04.10.2016
comment
Add-WebConfigurationProperty -pspath 'MACHINE / WEBROOT / APPHOST' -filter system.applicationHost / sites / site [@ name = 'Test'] / bindings / binding [@ protocol = 'https' and @ bindingInformation = '192.168.1.108: 443 : testssl '] -name sslFlags -value 1   -  person Baskar Lingam Ramachandran    schedule 04.10.2016
comment
РАБОТАЕТ С New-WebBinding: Но с New-WebBinding -Name TestSite -Protocol https -Port 443 -HostHeader Testssl -IPAddress 192.168.1.108 -SslFlags 1 работает.   -  person Baskar Lingam Ramachandran    schedule 04.10.2016
comment
Опубликуйте это как ответ и примите это.   -  person Lex Li    schedule 04.10.2016
comment
Хорошо. Сделаю. Свой ответ я смог принять только через 2 дня. Сделаю это через пару дней.   -  person Baskar Lingam Ramachandran    schedule 04.10.2016


Ответы (1)


С помощью комментария Лекса Ли приведенная ниже команда РАБОТАЕТ.

New-WebBinding -Name TestSite -Protocol https -Port 443 -HostHeader Testssl -IPAddress 192.168.1.108 -SslFlags 1

person Baskar Lingam Ramachandran    schedule 04.10.2016