Aprovisionar el Portal de dispositivos Windows con un certificado SSL personalizado

El Portal de dispositivos Windows (WDP) ofrece una manera de que los administradores de dispositivos pudieran instalar un certificado personalizado para usarlo en la comunicación HTTPS.

Si bien puedes hacerlo en tu propio equipo, esta función está pensada principalmente para las empresas que cuentan con una infraestructura de certificados en funcionamiento.

Por ejemplo, una empresa podría tener una entidad de certificación (CA) que use para firmar certificados para sitios web de intranet atendidos a través de HTTPS. Esta función se coloca por encima de dicha infraestructura.

Introducción

De manera predeterminada, el portal WDP genera una CA raíz autofirmada y, a continuación, la utiliza para firmar certificados SSL para cada punto de conexión en el que esté escuchando. Esto incluye localhost, 127.0.0.1 y ::1 (host local IPv6).

También se incluyen el nombre de host del dispositivo (por ejemplo, https://LivingRoomPC) y cada dirección IP con vínculo local asignada al dispositivo (hasta dos [IPv4, IPv6] por cada adaptador de red). Para ver las direcciones IP locales de vínculo local para un dispositivo, puede echar un vistazo a la herramienta Redes en el portal WDP. Comenzarán por 10. o 192. para IPv4, o fe80: para IPv6.

En la configuración predeterminada, puede aparecer una advertencia de certificado en el navegador, porque la CA raíz no es de confianza. Específicamente, el certificado SSL proporcionado por el portal WDP está firmado por una CA raíz en la que el explorador o el equipo no confían. Esto se puede solucionar mediante la creación de una nueva CA raíz de confianza.

Crear una CA raíz

Esto solamente debe hacerse si tu empresa (u hogar) no dispone de una infraestructura de certificados establecida, y solo debe hacerse una vez. El siguiente script de PowerShell crea una CA raíz llamada WdpTestCA.cer. La instalación de este archivo en las entidades de certificación de raíz de confianza del equipo local hará que el dispositivo confíe en los certificados SSL que estén firmados por esta CA raíz. Puede (y debe) instalar este archivo .cer en todos los equipos que quiera conectar al portal WDP.

$CN = "PickAName"
$OutputPath = "c:\temp\"

# Create root certificate authority
$FilePath = $OutputPath + "WdpTestCA.cer"
$Subject =  "CN="+$CN
$rootCA = New-SelfSignedCertificate -certstorelocation cert:\currentuser\my -Subject $Subject -HashAlgorithm "SHA512" -KeyUsage CertSign,CRLSign
$rootCAFile = Export-Certificate -Cert $rootCA -FilePath $FilePath

Una vez creado, puedes usar el archivo WdpTestCA.cer para firmar certificados SSL.

Crear un certificado SSL con la CA raíz

Los certificados SSL tienen dos funciones fundamentales: proteger la conexión mediante cifrado y comprobar que realmente te comunicas con la dirección que se muestra en la barra del navegador (Bing.com, 192.168.1.37, etc.) y no un tercero malintencionado.

El siguiente script de PowerShell crea un certificado SSL para el punto de conexión localhost. Cada punto de conexión que el portal WDP escucha necesita su propio certificado; puede reemplazar el argumento $IssuedTo del script por cada uno de los puntos de conexión diferentes del dispositivo: el nombre de host, el host local y las direcciones IP.

$IssuedTo = "localhost"
$Password = "PickAPassword"
$OutputPath = "c:\temp\"
$rootCA = Import-Certificate -FilePath C:\temp\WdpTestCA.cer -CertStoreLocation Cert:\CurrentUser\My\

# Create SSL cert signed by certificate authority
$IssuedToClean = $IssuedTo.Replace(":", "-").Replace(" ", "_")
$FilePath = $OutputPath + $IssuedToClean + ".pfx"
$Subject = "CN="+$IssuedTo
$cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -Subject $Subject -DnsName $IssuedTo -Signer $rootCA -HashAlgorithm "SHA512"
$certFile = Export-PfxCertificate -cert $cert -FilePath $FilePath -Password (ConvertTo-SecureString -String $Password -Force -AsPlainText)

Si tienes varios dispositivos, puedes volver a usar los archivos .pfx de host local, pero tendrás que crear direcciones IP y certificados de nombre de host para cada dispositivo por separado.

Cuando se genere la agrupación de archivos .pfx, deberá cargarlos en el portal WDP.

Aprovisionar el Portal de dispositivos Windows con las certificaciones

Para cada archivo .pfx que hayas creado para un dispositivo, debes ejecutar el siguiente comando desde un símbolo del sistema con privilegios elevados.

WebManagement.exe -SetCert <Path to .pfx file> <password for pfx>

El siguiente es un ejemplo de uso:

WebManagement.exe -SetCert localhost.pfx PickAPassword
WebManagement.exe -SetCert --1.pfx PickAPassword
WebManagement.exe -SetCert MyLivingRoomPC.pfx PickAPassword

Una vez que hayas instalado los certificados, simplemente reinicia el servicio para que los cambios surtan efecto:

sc stop webmanagement
sc start webmanagement

Sugerencia

Las direcciones IP pueden cambiar con el tiempo. Muchas redes usan DHCP para proporcionar las direcciones IP, para que los dispositivos no obtengan siempre la misma dirección IP que tenían anteriormente. Si ha creado un certificado para una dirección IP en un dispositivo y la dirección del dispositivo ha cambiado, el portal WDP generará un nuevo certificado usando el certificado autofirmado existente y dejará de usar el que había creado. Esto hará que la página de advertencia de certificados vuelva a aparecer en el navegador. Por este motivo, se recomienda conectarse a los dispositivos con sus nombres de host, que puede establecer en el Portal de dispositivos Windows. Estos seguirán siendo los mismos, independientemente de las direcciones IP.