Bereitstellen eines Windows-Geräteportals mit einem benutzerdefinierten SSL-Zertifikat

Windows Device Portal (WDP) bietet Geräteadministratoren die Möglichkeit, ein benutzerdefiniertes Zertifikat für die Verwendung in der HTTPS-Kommunikation zu installieren.

Obwohl Sie dies auf Ihrem eigenen PC ausführen können, ist dieses Feature in erster Linie für Unternehmen vorgesehen, die über eine vorhandene Zertifikatinfrastruktur verfügen.

Beispielsweise kann ein Unternehmen über eine Zertifizierungsstelle verfügen, die zum Signieren von Zertifikaten für Intranetwebsites verwendet wird, die über HTTPS bereitgestellt werden. Dieses Feature steht über dieser Infrastruktur.

Overview

Standardmäßig generiert WDP ein selbstsigniertes Stammzertifikat und verwendet dieses anschließend, um SSL-Zertifikate für jeden Endpunkt zu signieren, an dem es lauscht. Dazu gehören localhost, und 127.0.0.1::1 (IPv6 localhost).

Außerdem sind der Hostname des Geräts (z. B. https://LivingRoomPC) sowie jede dem Gerät zugewiesene link-lokale IP-Adresse aufgeführt (bis zu zwei [IPv4, IPv6] pro Netzwerkadapter). Sie finden die verbindungslokalen IP-Adressen für ein Gerät anhand des Netzwerktools im WDP. Sie beginnen mit 10. oder 192. für IPv4 oder fe80: für IPv6.

Im Standardsetup wird möglicherweise eine Zertifikatwarnung in Ihrem Browser aufgrund der nicht vertrauenswürdigen Stammzertifizierungsstelle angezeigt. Insbesondere ist das von WDP bereitgestellte SSL-Zertifikat von einer Stammzertifizierungsstelle signiert, der der Browser bzw. PC nicht vertraut. Dies kann durch Erstellen einer neuen vertrauenswürdigen Stamm-CA behoben werden.

Erstellen einer Stamm-CA

Dies sollte nur erfolgen, wenn Ihr Unternehmen (oder Ihr Zuhause) keine Zertifikatinfrastruktur eingerichtet hat und nur einmal durchgeführt werden sollte. Führen Sie dieses Skript über eine PowerShell-Eingabeaufforderung mit erhöhten Rechten (als Administrator) aus, da es in den LocalMachine\MyZertifikatspeicher schreibt. Das Skript erstellt eine Stammzertifizierungsstelle namens WdpTestCA.cer. Die Installation dieser Datei im Zertifikatsspeicher „Vertrauenswürdige Stammzertifizierungsstellen“ des lokalen Computers bewirkt, dass Ihr Gerät SSL-Zertifikaten vertraut, die von dieser Stammzertifizierungsstelle signiert wurden. Sie können (und sollten) diese .cer Datei auf jedem PC installieren, den Sie mit WDP verbinden möchten.

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

# Create root certificate authority (marked as a CA via Basic Constraints)
$FilePath = $OutputPath + "WdpTestCA.cer"
$Subject = "CN=" + $CN
$rootCA = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -Subject $Subject -HashAlgorithm "SHA512" -KeyUsage CertSign,CRLSign -TextExtension @("2.5.29.19={critical}{text}CA=true")
$rootCAFile = Export-Certificate -Cert $rootCA -FilePath $FilePath

Die Root-CA ist jetzt in LocalMachine\My gespeichert (mit ihrem privaten Schlüssel). Die exportierte WdpTestCA.cer ist das öffentliche Zertifikat, das Sie in vertrauenswürdigen Stammzertifizierungsstellen auf jedem verbindungsbasierten PC installieren.

Erstellen eines SSL-Zertifikats mit der Stammzertifizierungsstelle

SSL-Zertifikate verfügen über zwei wichtige Funktionen: Sichern Ihrer Verbindung durch Verschlüsselung und Überprüfen, ob Sie tatsächlich mit der in der Browserleiste angezeigten Adresse kommunizieren (Bing.com, 192.168.1.37 usw.) und keine böswilligen Dritten.

Das folgende PowerShell-Skript erstellt ein SSL-Zertifikat für den localhost Endpunkt. Jeder Endpunkt, auf den WDP lauscht, benötigt ein eigenes Zertifikat; Sie können das $IssuedTo Argument im Skript durch jeden der verschiedenen Endpunkte für Ihr Gerät ersetzen: hostname, localhost und die IP-Adressen. Für dieses Skript ist auch eine PowerShell-Eingabeaufforderung mit erhöhten Rechten erforderlich. Der Get-ChildItem Filter verwendet den gleichen CN (PickAName), den Sie in Schritt 1 ausgewählt haben – halten Sie sie synchron.

$IssuedTo = "localhost"
$Password = "PickAPassword"
$OutputPath = "c:\temp\"

# Retrieve the root CA (with its private key) from the store where it was created.
# Match the CN you used above.
$rootCA = Get-ChildItem -Path cert:\localmachine\my | Where-Object { $_.Subject -eq "CN=PickAName" -and $_.HasPrivateKey } | Select-Object -First 1

# 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)

Wenn Sie über mehrere Geräte verfügen, können Sie die localhost-PFX-Dateien wiederverwenden, aber Sie müssen weiterhin IP-Adressen- und Hostnamenzertifikate für jedes Gerät separat erstellen.

Wenn das Bündel von PFX-Dateien generiert wird, müssen Sie sie in den WDP laden.

Windows Device Portal mit dem/den Zertifikat(en) bereitstellen

Für jede .pfx-Datei, die Sie für ein Gerät erstellt haben, müssen Sie den folgenden Befehl in einer Eingabeaufforderung mit erhöhten Rechten ausführen.

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

Siehe unten ein Beispiel für die Verwendung:

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

Nachdem Sie die Zertifikate installiert haben, starten Sie den Dienst neu, damit die Änderungen wirksam werden können:

sc stop webmanagement
sc start webmanagement

Tip

IP-Adressen können sich im Laufe der Zeit ändern. Viele Netzwerke verwenden DHCP, um IP-Adressen zu vergeben, sodass Geräte nicht immer dieselbe IP-Adresse erhalten, die sie zuvor hatten. Wenn Sie ein Zertifikat für eine IP-Adresse auf einem Gerät erstellt haben und die Adresse dieses Geräts geändert wurde, generiert WDP mithilfe des vorhandenen selbstsignierten Zertifikats ein neues Zertifikat, und es wird die Verwendung des von Ihnen erstellten Zertifikats beendet. Dadurch wird die Zertifikatwarnungsseite erneut in Ihrem Browser angezeigt. Aus diesem Grund empfehlen wir, über ihre Hostnamen eine Verbindung mit Ihren Geräten herzustellen, die Sie im Windows Geräteportal festlegen können. Diese bleiben unabhängig von IP-Adressen gleich.

Siehe auch