RDS-Zertifikate austauschen mit Set-RDCertificate
Zertifikate für RD-Gateway, RD-Web Access, Verbindungsbroker-Umleitung und Veröffentlichung mit Get-RDCertificate und Set-RDCertificate austauschen und jede Rolle prüfen.
Eine Remotedesktopdienste-Bereitstellung (RDS) weist Zertifikate pro Rolle über den RD-Verbindungsbroker zu, der sie an die Server der jeweiligen Rolle verteilt:
| Rolle | Wofür |
|---|---|
RDGateway | TLS des RD-Gateways, über das Nutzer von außen verbinden |
RDWebAccess | HTTPS der RD-Web-Access-Seite |
RDRedirector | Verbindungen zum Verbindungsbroker, einschließlich Single Sign-on |
RDPublishing | Signatur der .rdp-Dateien für RemoteApps und Desktops |
Ein Zertifikat, dessen SAN alle Namen abdeckt, die Nutzer und Clients verwenden, kann alle vier Rollen bedienen; Sie können aber auch je Rolle eigene Zertifikate nutzen. Der RDP-Listener des Sitzungshosts selbst ist eine eigene, lokale Einstellung - siehe Remote Desktop (RDP).
Voraussetzungen
- Besorgen Sie eine kennwortgeschützte PFX-Datei mit privatem Schlüssel, der EKU Serverauthentifizierung und SANs für die externen Gateway- und Web-Namen sowie - wo nötig - die internen Broker-Namen.
- Arbeiten Sie auf einem Host mit dem PowerShell-Modul RemoteDesktop und
Administratorrechten für die Bereitstellung. Notieren Sie die Ausgabe von
Get-RDCertificateund exportieren Sie jede alte PFX-Datei sicher. - Bewahren Sie die PFX-Dateien der aktuellen Zertifikate auf: Ein Rollback heißt, sie erneut zuzuweisen, und ein Zertifikat mit nicht exportierbarem Schlüssel lässt sich später nicht mehr exportieren.
- Planen Sie ein Wartungsfenster.
Set-RDCertificateaktualisiert alle Server einer Rolle auf einmal; Verbindungen, die gerade aufgebaut werden, können scheitern, und Gateway-Nutzer müssen sich eventuell neu verbinden.
Zertifikat Schritt für Schritt austauschen
-
Bereitstellung prüfen:
Import-Module RemoteDesktop $broker = "rdcb.example.com" Get-RDCertificate -ConnectionBroker $broker -
PFX jeder betroffenen Rolle zuweisen:
$password = Read-Host "PFX password" -AsSecureString $roles = "RDGateway","RDWebAccess","RDRedirector","RDPublishing" foreach ($role in $roles) { Set-RDCertificate -Role $role -ImportPath C:\secure\rds.pfx ` -Password $password -ConnectionBroker $broker -Force }Das weist allen vier Rollen ein Zertifikat zu. Für unterschiedliche Zertifikate führen Sie
Set-RDCertificateje Rolle mit der passenden PFX-Datei aus. Im Server-Manager finden Sie denselben Vorgang unter Remotedesktopdienste > Übersicht > Aufgaben > Bereitstellungseigenschaften bearbeiten > Zertifikate; dort wird das gewählte Zertifikat an die Server der jeweiligen Rolle verteilt. -
Jede Rolle mit
Get-RDCertificatezurücklesen. Brauchen auch die Sitzungshosts ein vertrauenswürdiges Zertifikat für den RDP-Listener, wenden Sie auf jedem Host die Anleitung für den einzelnen RDP-Listener an.
Produktspezifische Hinweise
Erfinden Sie keinen Wert RDLicensing für Set-RDCertificate; Microsoft dokumentiert
derzeit nur die vier oben genannten Rollen. Hochverfügbare Verbindungsbroker,
Gateway-Farmen und Web-Access-Farmen müssen pro Knoten und über den Namen am Load
Balancer getestet werden. Das Cmdlet bzw. der Import übernimmt die Verteilung an die
Rollen - ein manueller Import nur auf dem Broker ist nicht gleichwertig.
Neues Zertifikat prüfen
Führen Sie Get-RDCertificate -ConnectionBroker $broker aus - jede Rolle muss den neuen
Fingerabdruck, das neue Ablaufdatum und die Stufe Trusted zeigen. Prüfen Sie dann
jeden Gateway- und Web-Access-Server direkt und über den öffentlichen Namen:
openssl s_client -connect rdgw.example.com:443 -servername rdgw.example.com -showcerts </dev/nullStarten Sie eine RemoteApp: Der im Sicherheitshinweis angezeigte Herausgeber ist das
RDPublishing-Zertifikat. Testen Sie externe und interne DNS-Pfade.
Rollback
Führen Sie Set-RDCertificate für jede geänderte Rolle erneut mit der alten PFX-Datei
aus. Behalten Sie die alten PFX-Dateien, bis Gateway-Zugriff, Web Access, Umleitung und
Veröffentlichung erfolgreich getestet sind; ein Rollback hilft nur, solange das alte
Zertifikat noch gültig ist.
Häufige Probleme
- Der externe Name am Load Balancer fehlt in den SANs.
- Nur eine Rolle wurde aktualisiert; Gateway oder Veröffentlichung nutzen noch das alte Zertifikat.
- Der Befehl zielte auf den falschen Verbindungsbroker.
- Der Listener eines Sitzungshosts wird mit einer Rolle der RDS-Bereitstellung verwechselt.
Zertifikatstausch mit aethercert automatisieren
Das aethercert-Deployment-Ziel für RDS ruft Set-RDCertificate für eine gewählte Rolle
und einen Verbindungsbroker auf. Legen Sie für jede unterstützte RDS-Rolle, die das
Zertifikat braucht, eine eigene Zielzuweisung an.
Unter Deployment-Ziele finden Sie die Felder dieser Vorlage, die Voraussetzungen auf dem Host und den Stand der Verifizierung.
Quellen
Remote Desktop (RDP)
Zertifikat des RDP-Listeners eines einzelnen Windows-Servers ändern: SSLCertificateSHA1Hash per PowerShell/WMI oder Registry setzen, NETWORK SERVICE Schlüsselzugriff geben, prüfen.
WinRM
Zertifikat des WinRM-HTTPS-Listeners (Port 5986) austauschen: Anforderungen, Fingerabdruck mit Set-WSManInstance setzen, Fehler 0x80338115 beheben, Remoting erhalten.