it-swarm.com.de

So stellen Sie ein verifiziertes Serverzertifikat für RDP-Verbindungen (Remote Desktop) zu Windows 10 bereit

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. Es wird jedoch kein extern verifiziertes SSL-Zertifikat angezeigt, sondern nur das selbst erstellte selbstsignierte Zertifikat, das Remotedesktopdienste bereitstellen gibt uns zwei Probleme:

  1. Wir können nicht sicher sein, ob wir eine Verbindung über Fernzugriff herstellen und keine entführte Verbindung.
  2. Unsere Site besteht die PCI-DSS 3.1-Konformitätsprüfung nicht (erforderlich, da wir dort einen Point-of-Sale-Debit-/Kreditkartenautomaten verwenden, der über das Internet eine Verbindung herstellt). Die Überprüfung meldet schwerwiegende Fehler an diesem mit dem Internet verbundenen Remotedesktop-Port: "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 einrichten, um ein ordnungsgemäßes SSL-Zertifikat für die Remotedesktop-Überprüfung vorzulegen?

10
gogoud

Sie können diesen Host-Rechner so einstellen, dass er Ihr (vorhandenes, erworbenes) extern verifiziertes SSL-Zertifikat verwendet und präsentiert (Anweisungen funktionieren möglicherweise auch für Windows 8 und 8.1, möglicherweise auch nicht für Windows 7) (Teile davon basieren auf einem Microsoft KB 2001849 ):

Zunächst müssen Sie ein echtes verifiziertes SSL-Zertifikat erworben haben.

Wenn Sie dieses Zertifikat im pkcs12-Format haben (z. B. pfx-Erweiterung), können Sie den SHA1-Fingerabdruck unter Linux oder Cygwin anzeigen (Sie benötigen ihn unten):

openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint

Alternativ können Sie die einzelnen Zertifikatsdateien auf Ihrem Linux-Server unter/etc/ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle und /etc/ssl/private/mysite.key speichern ) Sie können eine PFX-Datei erstellen und den SHA1-Fingerabdruck folgendermaßen erhalten:

  1. Erstellen Sie eine pfx-Datei für Ihr Zertifikat, falls Sie noch keine haben (hier: mysite.pfx) - legen Sie ein gutes Passwort fest, wenn Sie dazu aufgefordert werden: Sudo openssl pkcs12 -export -out mysite.pfx -inkey/etc/ssl/private/mysite .pem -in /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
  2. Verschieben oder kopieren Sie diese pfx-Datei nach Bedarf, damit Ihr Windows Host-Computer darauf zugreifen kann.
  3. Zeigen Sie den SHA1-Fingerabdruck des Schlüssels an (Sie benötigen diesen unten): 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 Host-Computers:

  1. Start/Run/mmc
  2. Datei/Hinzufügen Snap-In entfernen/Zertifikate/Hinzufügen/Computerkonto/Lokaler Computer/OK
  3. Klicken Sie im linken Fenster mit der rechten Maustaste auf Zertifikate (Lokaler Computer)/Persönlich und wählen Sie Alle Aufgaben/Importieren.
  4. Suchen Sie die pfx-Datei und importieren Sie sie. Ich empfehle, sie aus Sicherheitsgründen nicht exportierbar zu machen.
  5. Wenn Sie Ihre persönlichen Daten/Zertifikate erweitern, sollten jetzt 3 Zertifikate angezeigt werden, von denen eines Ihr Site-Zertifikat ist (z. B. mysite.com). Klicken Sie mit der rechten Maustaste auf dieses Site-Zertifikat, und wählen Sie mit der rechten Maustaste Alle Aufgaben/Private Schlüssel verwalten ... aus.
  6. Fügen Sie den Benutzer "NETWORK SERVICE" mit der Berechtigung "Nur Lesen" (nicht "Vollzugriff") hinzu und klicken Sie auf "Übernehmen"
  7. Schließen Sie mmc

Fügen Sie mit regedit einen neuen Binärwert mit dem Namen SSLCertificateSHA1Hash unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminalserver\WinStations\RDP-Tcp hinzu. 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 oder Leerzeichen oder Kommas, bei Buchstaben wird die Groß-/Kleinschreibung nicht berücksichtigt) Insgesamt 20 Hex-Paare (40 Zeichen).

Möglicherweise müssen Sie den Host-Computer neu starten oder die Remotedesktopdienste (von Services.msc) neu starten, bevor sie funktionieren.

Nachdem Sie nun eine Remote-Desktop-Verbindung zu diesem Host unter Verwendung des korrekten Site-Namens (z. B. mysite.com) hergestellt haben, sollte links in 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 den PCI-DSS 3.1-Hostnamentest bestehen.

13
gogoud

Hier sind die grundlegenden Schritte, die ich benutze:

Besorgen 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 der Hostname korrekt ist. Ich hatte Probleme mit Platzhalterzertifikaten.

Installieren Sie das Zertifikat auf dem Host wie folgt:

certutil.exe -p myPassword -importPFX c:\mycert.pfx noExport

suchen Sie den Fingerabdruck für das Zertifikat in der Benutzeroberfläche oder in PowerShell:

$tp = (ls Cert:\LocalMachine\my | WHERE {$_.Subject -match "something unique in your certs subject field" } | Select -First 1).Thumbprint

weisen Sie Remote Desktop jetzt an, dieses Zertifikat zu verwenden:

& wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$tp" 

kein Neustart erforderlich

4
Peter Hahndorf