Provisionar o Portal de Dispositivos do Windows com um certificado SSL personalizado
O WDP (Portal de Dispositivos do Windows) oferece aos administradores de dispositivos uma forma de instalar um certificado personalizado a ser usado na comunicação HTTPS.
Embora você possa fazer isso usando seu computador, esse recurso é indicado principalmente a empresas que já têm uma infraestrutura de certificados em uso.
Por exemplo, uma empresa pode ter uma AC (autoridade de certificação) para assinar certificados de sites de intranet por HTTPS. Além disso, esse recurso funciona sobre essa infraestrutura.
Visão geral
Por padrão, o WDP gera uma AC raiz autoassinada e depois a utiliza para assinar certificados SSL em cada ponto de extremidade que ele esteja escutando. Isso inclui localhost
, 127.0.0.1
e ::1
(localhost IPv6).
Também estão incluídos o nome de host do dispositivo (por exemplo, https://LivingRoomPC
) e o endereço IP de link local atribuído ao dispositivo (até dois [IPv4, IPv6] por adaptador de rede).
Você pode ver os endereços IP de link local de um dispositivo analisando a ferramenta de Rede no WDP. Eles começarão com 10.
ou 192.
para IPv4 ou fe80:
para IPv6.
Na configuração padrão, um aviso de certificado pode aparecer no navegador devido à AC raiz não confiável. Especificamente, o certificado SSL fornecido pelo WDP é assinado por uma AC raiz na qual o navegador ou o PC não confia. Isso pode ser corrigido por meio da criação de uma nova AC raiz confiável.
Criar uma AC raiz
Isso só deverá ser feito uma vez e se sua empresa (ou casa) não tiver uma configuração de infraestrutura de certificado. O script do PowerShell a seguir cria uma AC raiz chamada WdpTestCA.cer. A instalação desse arquivo nas autoridades de certificação raiz confiáveis do computador local fará com que o dispositivo confie nos certificados SSL assinados por essa AC raiz. Você pode (e deve) instalar esse arquivo .cer em cada PC que deseja conectar ao 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
Depois que isso for criado, use o arquivo WdpTestCA.cer para assinar certificados SSL.
Criar um certificado SSL com a AC raiz
Os certificados SSL têm duas funções essenciais: proteger sua conexão por meio de criptografia e verificar se é você que está se comunicando com o endereço exibido na barra do navegador (Bing.com, 192.168.1.37 etc.), e não um terceiro mal-intencionado.
O script de PowerShell a seguir cria um certificado SSL para o ponto de extremidade localhost
. Cada ponto de extremidade que o WDP escuta precisa ter o próprio certificado; você pode substituir o argumento $IssuedTo
no script por um dos pontos de extremidade do seu dispositivo: o nome do host, o localhost e os endereços 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)
Se você tiver vários dispositivos, poderá reutilizar os arquivos .pfx do localhost, mas ainda precisará criar certificados de endereço IP e nome de host para cada dispositivo separadamente.
Quando o pacote de arquivos .pfx for gerado, você precisará carregá-lo no WDP.
Provisionar o Portal de Dispositivos do Windows com as certificações
Para cada arquivo .pfx que você criou para um dispositivo, será necessário executar o seguinte comando em um prompt de comandos com privilégios elevados.
WebManagement.exe -SetCert <Path to .pfx file> <password for pfx>
Confira o seguinte exemplo de uso:
WebManagement.exe -SetCert localhost.pfx PickAPassword
WebManagement.exe -SetCert --1.pfx PickAPassword
WebManagement.exe -SetCert MyLivingRoomPC.pfx PickAPassword
Após instalar os certificados, basta reiniciar o serviço para que as alterações entrem em vigor:
sc stop webmanagement
sc start webmanagement
Dica
Os endereços IP podem mudar ao longo do tempo. Muitas redes usam DHCP para atribuir endereços IP, portanto, nem sempre os dispositivos terão o mesmo endereço IP que tinham antes. Se você tiver criado um certificado para um endereço IP em um dispositivo, e o endereço desse dispositivo tiver sido alterado, o WDP vai gerar um novo certificado usando o certificado autoassinado existente e deixará de usar o que você criou. Isso fará com que a página de aviso de certificado apareça no navegador novamente. Por esse motivo, recomendamos que você se conecte aos seus dispositivos por meio dos nomes do host, que você pode definir no Portal de Dispositivos do Windows. Eles permanecerão inalterados, independentemente dos endereços IP.