Estoy intentando completar el script de compilación automatizado de mi servidor web, que ejecuta Windows 2012 y tiene dos sitios web SSL, cada uno con su propio certificado digital.
Estoy usando SNI, que funciona bien cuando lo configuro manualmente, pero cuando uso APPCMD para configurar la misma configuración no puedo entender cómo seleccionar un certificado para los sitios en el enlace.
Al utilizar el método manual, hay una lista desplegable que puede utilizar para elegir el certificado. Estoy buscando la línea de comando equivalente a elegir un certificado de esa lista.
¿Alguien sabe cómo se hace eso?
Respuesta1
No conozco appcmd, lo considero una herramienta heredada que ya no recomiendo usar.
En PowerShell indica SNI con el parámetro SSlFlags, 0 no es SNI, 1 establece 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 asignar un certificado existente, primero obtenga la huella digital del certificado y un GUID y luego 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 el sitio sin 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
Respuesta2
Aquí está la respuesta que encontré a mi propia pregunta...
Necesitaba usar netsh con la siguiente sintaxis: -
netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}
La parte clave que me faltaba anteriormente era el parámetro llamado "hostnameport" arriba. Espero que esto ayude a alguien en el futuro.
Saludos,
Anuncios