Frage So stellen Sie ein verifiziertes Serverzertifikat für Remotedesktopverbindungen (RDP) für Windows 10 bereit


Wir haben einen Windows 10 Pro-Computer in unserem Büro, der einen offenen Port zum Internet für eingehende Remote-Desktop-Verbindungen (einen "Host") hat. Es ist gut geschützt durch ein komplexes Passwort und eine begrenzte Anzahl von erlaubten Versuchen und nur TLS 1.1 oder höher, aber es stellt kein extern verifiziertes SSL-Zertifikat dar, sondern nur das selbst erzeugte selbstsignierte Zertifikat, das von Remotedesktopdiensten bereitgestellt wird gibt uns zwei Probleme:

  1. Wir können nicht völlig sicher sein, wenn wir aus der Ferne eine Verbindung herstellen, und nicht irgendeine entführte Verbindung.
  2. Unsere Website hat die PCI-DSS 3.1-Konformitätsprüfung nicht bestanden (erforderlich, da wir dort einen Point-of-Sale-Kredit- / Kreditkartendrucker verwenden, der über das Internet verbunden ist). Die Überprüfung meldet schwerwiegende Fehler auf diesem mit dem Internet verbundenen Remote-Desktop-Port: "SSL-selbstsigniertes Zertifikat" und "SSL-Zertifikat mit falschem Hostnamen".

Wie bekomme ich einen Windows 10 Pro (oder Windows 7/8 / 8.1 Pro) Computer, der als Server / Host agiert, um ein korrektes SSL-Zertifikat für die Remote Desktop-Überprüfung zu präsentieren?


4
2018-06-24 14:40


Ursprung


Sie können das selbstsignierte Zertifikat entweder in den Zertifikatspeicher jeder Maschine stellen, die eine Verbindung zu dieser Maschine herstellt, so dass nur das selbstsignierte Zertifikat vertrauenswürdig ist. Sie können das Zertifikat auch von einer Zertifizierungsstelle signieren lassen. Da die Zertifizierungsstelle standardmäßig vertrauenswürdig ist, wird das Zertifikat, das der Host verwenden möchte, als vertrauenswürdig eingestuft. Sie können Ihre PCI-DSS 3.1-Kompatibilitätsprobleme nur lösen, wenn Sie ein von CA signiertes Zertifikat erhalten.  Du solltest das tun. - Ramhound
Danke @Ramhound, du hast recht, ich brauche ein CA-signiertes Zertifikat - ich habe jetzt eins. - gogoud


Antworten:


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

Zuerst müssen Sie ein echtes verifiziertes SSL-Zertifikat erworben haben.

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

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

Alternativ, wenn 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) haben ) Sie können pfx-Datei erstellen und SHA1-Fingerabdruck erhalten, also:

  1. Erstellen Sie eine PFX-Datei für Ihr Zertifikat, falls Sie noch keine haben (hier: mysite.pfx) - geben Sie ein gutes Passwort ein, wenn Sie dazu aufgefordert werden: sudo openssl pkcs12 -export -out mysite.pfx -schlüssel /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 sie für Ihren Windows-Hostcomputer zugänglich ist.
  3. Zeigen Sie den SHA1-Fingerabdruck des Schlüssels an (Sie benötigen das unten): openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint

Importieren Sie die pkcs12-Formatdatei (z. B. pfx) in den persönlichen Zertifikatsspeicher des Windows-Hostcomputers:

  1. Start / Ausführen / mmc
  2. Datei / Hinzufügen Entfernen Snap-In / Zertifikate / Hinzufügen / Computer Konto / Lokaler Computer / OK
  3. Klicken Sie im linken Fenster mit der rechten Maustaste auf Zertifikate (Lokaler Computer) / Persönlich, wählen Sie Alle Aufgaben / Importieren ...
  4. Suchen Sie die PFX-Datei und importieren Sie sie, ich schlage vor, dass Sie es aus Sicherheitsgründen nicht exportierbar machen.
  5. Wenn Sie Ihre persönlichen / Zertifikate erweitern, sollten Sie nun 3 Zertifikate sehen, von denen eines Ihr Site-Zertifikat ist (z. B. mysite.com). Klicken Sie mit der rechten Maustaste auf dieses Websitezertifikat und klicken Sie mit der rechten Maustaste, wählen Sie Alle Aufgaben / Private Schlüssel verwalten ... aus.
  6. Fügen Sie dem Benutzer "NETWORK SERVICE" nur Leseberechtigung (nicht Vollzugriff) und dann Übernehmen hinzu
  7. Schließen mmc

Verwenden Sie regedit, um einen neuen Binärwert namens SSLCertificateSHA1Hash unter HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp hinzuzufügen. 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 der Reihe nach ein (ohne Doppelpunkte oder Leerzeichen oder Kommas, Buchstaben sind nicht Groß- und Kleinschreibung) Insgesamt 20 Hex-Paare (40 Zeichen).

Möglicherweise müssen Sie den Host-Computer neu starten oder Remote Desktop Services (von Services.msc) neu starten, bevor es funktioniert.

Nun, nachdem Sie eine Remotedesktopverbindung zu diesem Host unter Verwendung des korrekten Site-Namens (z. B. mysite.com) hergestellt haben, sollten Sie ein geschlossenes Vorhängeschloss auf der linken Seite der oberen Verbindungsleiste sehen: Klicken Sie hierauf, um die Identität des Remote anzuzeigen Computer wurde verifiziert. Ein Port, der vom Internet zu diesem Host geöffnet ist, sollte jetzt den Hostnamen-Test von PCI-DSS 3.1 bestehen.


8
2018-06-24 14:40



Vielen Dank. Ich benutze diese genauen Schritte auf meinen Maschinen und es funktioniert gut. - Peter Berbec


Hier sind die grundlegenden Schritte, die ich verwende:

Erhalten Sie 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 Platzhaltern.

Installieren Sie das Zertifikat auf dem Host wie:

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

Suchen Sie den Fingerabdruck für das Zertifikat entweder auf 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

Richten Sie Remote Desktop nun ein, dieses Zertifikat zu verwenden:

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

kein Neustart erforderlich


3
2018-06-24 19:48