Я пытаюсь завершить автоматизированный сценарий сборки своего веб-сервера, который запускает Windows 2012 и имеет два веб-сайта SSL, каждого с его собственным цифровым сертификатом.
Я использую SNI, который хорошо работает, когда я настроил его вручную, но когда я использую APPCMD для установки той же конфигурации, я не могу разработать, как выбрать сертификат для сайтов в привязке.
Используя ручной подход существует выпадающий список, который Вы используете для выбора сертификата. Я ищу командную строку, эквивалентную из выбора сертификата из того списка.
Кто-либо знает, как Вы делаете это?
Вот ответ, который я нашел на свой вопрос...
Мне нужно было использовать netsh со следующим синтаксисом:-
netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}
Ключевой частью, которую я пропустил ранее, был параметр под названием "hostnameport", приведенный выше. Надеюсь, в будущем это кому-нибудь поможет.
Regards,
Ads
Я не знаю о appcmd, я считаю, что это устаревший инструмент, который я больше не рекомендую использовать.
В PowerShell вы указываете SNI с помощью параметра SSlFlags, 0 - это не SNI , 1 устанавливает SNI.
New-WebBinding -Name site1.local -Port 443 -Protocol https -SslFlags 0
New-WebBinding -Name site2.local -Port 443 -Hostheader site2.local -Protocol https -SslFlags 1
Чтобы назначить существующий сертификат, сначала получите отпечаток сертификата и GUID, а затем используйте netsh
$thumb = (Get-ChildItem cert:\LocalMachine\MY | where-object { $_.FriendlyName -match "site2" } | Select-Object -First 1).Thumbprint
$guid = [guid]::NewGuid()
& netsh http add sslcert hostnameport=site2.local:443 certhash=$thumb appid=`{$guid`} certstorename=MY
для сайта без использования SNI:
$thumb = (Get-ChildItem cert:\LocalMachine\MY | where-object { $_.FriendlyName -match "site1" } | Select-Object -First 1).Thumbprint
$guid = [guid]::NewGuid()
& netsh http add sslcert ipport=0.0.0.0:443 certhash=$thumb appid=`{$guid`} certstorename=MY