In unserem Büro befindet sich ein Windows 10 Pro-Computer mit einem offenen Internetanschluss für eingehende Remotedesktopverbindungen (ein "Host"). Es ist durch ein komplexes Kennwort und eine begrenzte Anzahl zulässiger Versuche sowie nur TLS 1.1 oder höher gut geschützt, enthält jedoch kein extern verifiziertes SSL-Zertifikat, sondern nur das selbst generierte selbstsignierte Zertifikat, das von Remotedesktopdiensten bereitgestellt wird gibt uns zwei Probleme:
- Wir können nicht ganz sicher sein, wenn wir eine Remoteverbindung herstellen. Wir stellen tatsächlich eine Verbindung zu diesem Computer her und keine entführte Verbindung.
- Unsere Website besteht keine PCI-DSS 3.1-Konformitätsprüfung (erforderlich, da wir dort einen Debit- / Kreditkartenautomaten am Verkaufsort verwenden, der eine Verbindung über das Internet herstellt). Bei der Überprüfung werden schwerwiegende Fehler an diesem mit dem Internet verbundenen Remotedesktop-Port gemeldet: "Selbstsigniertes SSL-Zertifikat" und "SSL-Zertifikat mit falschem Hostnamen".
Wie kann ich einen Windows 10 Pro-Computer (oder Windows 7/8 / 8.1 Pro-Computer) als Server / Host dazu bringen, ein ordnungsgemäßes SSL-Zertifikat für die Remotedesktopüberprüfung vorzulegen?
Antworten:
Sie können diesen Host-Computer so einstellen, dass er Ihr (vorhandenes, erworbenes) extern verifiziertes SSL-Zertifikat verwendet und präsentiert (Anweisungen funktionieren wahrscheinlich auch für Windows 8 und 8.1, funktionieren möglicherweise nicht für Windows 7 oder nicht) (Teile davon basieren auf Microsoft KB 2001849 ):
Zunächst müssen Sie ein echtes verifiziertes SSL-Zertifikat erworben haben.
Wenn Sie dieses Zertifikat in einer Datei im Format pkcs12 (z. B. pfx-Erweiterung) haben, können Sie den SHA1-Fingerabdruck unter Linux oder Cygwin anzeigen (Sie benötigen ihn unten):
Alternativ, wenn Sie die einzelnen Zertifikatdateien auf Ihrem Linux-Server unter / etc / ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle und /etc/ssl/private/mysite.key haben ) Sie können eine pfx-Datei erstellen und den SHA1-Fingerabdruck folgendermaßen erhalten:
Erstellen Sie eine pfx-Datei für Ihr Zertifikat, falls Sie noch keine haben (hier: mysite.pfx) - legen Sie auf Anfrage ein gutes Passwort fest:
Verschieben oder kopieren Sie diese pfx-Datei nach Bedarf, damit Ihr Windows-Hostcomputer darauf zugreifen kann.
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Importieren Sie die Datei im pkcs12-Format (z. B. pfx) in den persönlichen Zertifikatspeicher des Windows-Hostcomputers:
Verwenden Sie regedit, um einen neuen Binärwert mit dem Namen SSLCertificateSHA1Hash at hinzuzufügen
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
. Der Wert, den es benötigt, ist der SHA1-Fingerabdruck des oben erhaltenen Zertifikats: Klicken Sie mit der rechten Maustaste auf den neuen Wert, wählen Sie Ändern und geben Sie die Hex-Codes nacheinander ein (ohne Doppelpunkte, Leerzeichen oder Kommas, Buchstaben unterscheiden nicht zwischen Groß- und Kleinschreibung) Insgesamt 20 Hex-Paare (40 Zeichen).Möglicherweise müssen Sie den Hostcomputer neu starten oder die Remotedesktopdienste (über Services.msc) neu starten, bevor sie funktionieren.
Nachdem Sie eine Remotedesktopverbindung zu diesem Host unter Verwendung des richtigen Site-Namens (z. B. mysite.com) hergestellt haben, sollte auf der linken Seite der oberen Verbindungsleiste ein gesperrtes Vorhängeschloss angezeigt werden. Wenn Sie darauf klicken, wird die Identität der Remote angezeigt Computer wurde überprüft. Ein Port, der vom Internet bis zu diesem Host geöffnet ist, sollte jetzt das Testen des PCI-DSS 3.1-Hostnamens bestehen.
quelle
Hier sind die grundlegenden Schritte, die ich verwende:
Holen Sie sich ein gültiges Zertifikat für den Host (es muss nicht von einer externen Zertifizierungsstelle stammen, aber alle Ihre Computer müssen ihm vertrauen). Stellen Sie sicher, dass es den richtigen Hostnamen hat. Ich hatte Probleme mit Platzhalterzertifikaten.
Installieren Sie das Zertifikat auf dem Host wie folgt:
Suchen Sie den Fingerabdruck für das Zertifikat entweder in der Benutzeroberfläche oder in PowerShell:
Weisen Sie Remotedesktop nun an, dieses Zertifikat zu verwenden:
Kein Neustart erforderlich
quelle
Mein Zertifikat wird mit 2 benötigten Dateien geliefert,
domain.crt
unddomain.ca-bundle
dann muss ichdomain.key
die Anfrage generieren.Hier ist, wie ich es mit einer Linux-VM einrichte, um die Zertifikate zu kombinieren und den Fingerabdruck und Windows CMD zu generieren, um den Host einzurichten. Dies ermöglicht eine vollständige Skripterstellung des Setups.
Die größten Unterschiede zwischen meiner und @gogoud Antwort sind:
wmic /namespace:
über CMD-Eingabeaufforderung.NETWORK SERVICE
Berechtigungen geschrieben.Erstellen Sie ein Verzeichnis, in dem Sie arbeiten können, und verschieben Sie die 3 Dateien in das Verzeichnis:
Pfx-Formatschlüssel erstellen:
Exportieren Sie SSLCertificateSHA1Hash / FingerPrint in die TXT-Datei:
Zertifikat nach Windows importieren (Open Elevated CMD Prompt):
Dies kann über den Schalter "-p MyPassword" weiter skriptiert werden.
Fügen Sie nun SSLCertificateSHA1Hash über CMD (Elevated CMD Prompt) zu RDP-Tcp hinzu:
Sie müssen jetzt den Benutzer "Netzwerkdienst" mit den Berechtigungen "Schreibgeschützt" hinzufügen:
Host neu starten:
quelle