Frage Konfigurieren Sie benutzerdefiniertes SSL-Zertifikat für RDP unter Windows Server 2012 im Remote-Verwaltungsmodus?


Mit der Veröffentlichung von Windows Server 2012 wurden daher viele der alten Konfigurationsdienstprogramme für Remotedesktop entfernt. Insbesondere gibt es nicht mehr Konfiguration des Remotedesktop-Sitzungshosts Dienstprogramm, das Ihnen Zugriff auf das Dialogfeld RDP-Tcp-Eigenschaften ermöglichte, mit dem Sie ein benutzerdefiniertes Zertifikat für die Verwendung von RDSH konfigurieren konnten. An seiner Stelle befindet sich eine nette neue konsolidierte GUI, die Teil des gesamten Arbeitsablaufs "Bereitstellungseigenschaften bearbeiten" im neuen Server-Manager ist. Der Haken dabei ist, dass Sie nur dann Zugriff auf diesen Workflow erhalten, wenn Sie die Rolle der Remotedesktopdienste installiert haben (soweit ich das beurteilen kann).

Dies scheint ein kleines Versehen von Microsoft zu sein. Wie können wir ein benutzerdefiniertes SSL-Zertifikat für RDP unter Windows Server 2012 konfigurieren, wenn es im Standardmodus Remoteverwaltung ausgeführt wird, ohne die Rolle Remotedesktopdienste unnötig zu installieren?


49
2017-11-01 07:15


Ursprung




Antworten:


Es stellt sich heraus, dass ein Großteil der Konfigurationsdaten für RDSH in der Win32_TSGeneralSetting Klasse in WMI in der root\cimv2\TerminalServices Namensraum. Das konfigurierte Zertifikat für eine bestimmte Verbindung wird durch den Thumbprint-Wert dieses Zertifikats auf eine aufgerufene Eigenschaft referenziert SSLCertificateSHA1Hash.


AKTUALISIEREN: Hier ist eine verallgemeinerte Powershell-Lösung, die den Fingerabdruck des ersten SSL-Zertifikats im persönlichen Speicher des Computers erfasst und festlegt. Wenn Ihr System mehrere Zertifikate enthält, sollten Sie ein hinzufügen -Filter Option zum gci Befehl, um sicherzustellen, dass Sie auf das richtige Zertifikat verweisen. Ich habe meine ursprüngliche Antwort darunter als Referenz intakt gelassen.

# get a reference to the config instance
$tsgs = gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"

# grab the thumbprint of the first SSL cert in the computer store
$thumb = (gci -path cert:/LocalMachine/My | select -first 1).Thumbprint

# set the new thumbprint value
swmi -path $tsgs.__path -argument @{SSLCertificateSHA1Hash="$thumb"}

Um den Fingerabdruckwert zu erhalten

  1. Öffnen Sie den Eigenschaftendialog für Ihr Zertifikat und wählen Sie die Registerkarte Details
  2. Scrollen Sie nach unten zum Thumbprint-Feld und kopieren Sie die durch Leerzeichen getrennte Hex-Zeichenfolge in etwas wie Notepad
  3. Entfernen Sie alle Leerzeichen aus der Zeichenfolge. Sie sollten auch nach einem nicht-ASCII-Zeichen Ausschau halten und es entfernen, das manchmal direkt vor dem ersten Zeichen in der Zeichenfolge kopiert wird. Es ist nicht in Editor sichtbar.
  4. Dies ist der Wert, den Sie in WMI festlegen müssen. Es sollte ungefähr so ​​aussehen: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4.

Nun, da Sie den Fingerabdruckwert haben, können Sie den Wert mit wmic wie folgt festlegen:

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"

Oder wenn PowerShell Ihr Ding ist, können Sie stattdessen dieses verwenden:

$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}

Hinweis: Das Zertifikat muss sich im Zertifikatspeicher "Persönlich" für das Computerkonto befinden.


76
2017-11-01 07:15



Ich wollte nur hinzufügen, dass dies mich vor der puren Kernschmelze gerettet hat. Vielen Dank. Das Installieren der Rollen und das Neustarten von Servern, wie es in Technet und dergleichen vorgeschlagen wird, ist lächerlich. Selbst dann, wenn Sie das SSL-Zertifikat im RD-Gateway-Manager installiert haben, wird es nicht auf den Remote-Administrator-Login übertragen. - Papa
Vielen Dank dafür. Ich muss gesucht haben alles von Google bevor ich das gefunden habe. Es gibt zu viele Ergebnisse, die mir die Installation von "Remotedesktopdienste" über "Hinzufügen von Rollen und Features" anzeigen. Dazu müssen Sie jedoch einer Domäne beitreten. - Sethi
Wenn ich versuche, es mit Ihrem PS-Skript zu tun, erhalte ich "Ungültiger Parameter". Dasselbe Problem, wenn ich es auch manuell mache ... - deed02392
Ich wurde langsam Ungültiges Argument Verwenden aller Methoden, bis ich das Zertifikat erneut importiert habe einschließlich private Schlüssel. Ein einfacher Fehler. - toffitomek
Ich wieder: D Ich bekomme diesen "Ungültige Parameter" Fehler in Powershell auch beim Laufen wmic. Habe gerade den Zettel unten gesehen. Stellen Sie sicher, dass das Zertifikat auch im persönlichen Speicher vorhanden ist. Mein war dieses Mal im Web-Hosting-Store ... - Sethi


Wenn Sie beim Versuch, Ryans Lösung zu testen, "Ungültiger Parameter" erhalten, stellen Sie sicher, dass Sie eine Eingabeaufforderung mit erhöhten Rechten verwenden (als Administrator ausführen).


2
2018-02-27 21:32



Ich kann nicht glauben, dass dies keine Aufwertung hat! - Adrian Godong


Gibt es eine Möglichkeit, dass der Server die Verwendung eines gültigen Clientzertifikats erzwingt? Es scheint, dass ich vom RDP-Client aus wählen kann, ungültige Zertifikate zu ignorieren. Ich möchte, dass der Client keine Verbindung herstellen kann, wenn das Zertifikat ungültig ist.


0
2018-04-25 03:14