Estou tentando concluir o script de construção automatizado do meu servidor web, que roda Windows 2012 e possui dois sites SSL, cada um com seu próprio certificado digital.
Estou usando o SNI, que funciona bem quando o configuro manualmente, mas quando uso o APPCMD para definir a mesma configuração, não consigo descobrir como selecionar um certificado para os sites na ligação.
Usando a abordagem manual, há uma lista suspensa que você usa para escolher o certificado. Estou procurando a linha de comando equivalente a escolher um certificado dessa lista.
Alguém sabe como você faz isso?
Responder1
Não conheço o appcmd, considero uma ferramenta legada que não recomendo mais usar.
No PowerShell você indica SNI com o parâmetro SSlFlags, 0 não é SNI, 1 define 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
Para atribuir um certificado existente, primeiro obtenha a impressão digital do certificado e um GUID e depois use 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
para o site sem uso de 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
Responder2
Aqui está a resposta que encontrei para minha própria pergunta ...
Eu precisava usar netsh com a seguinte sintaxe: –
netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}
A parte principal que estava faltando anteriormente era o parâmetro chamado "hostnameport" acima. Espero que isso ajude alguém no futuro.
Cumprimentos,
Publicidades