Windows PKI: Zertifikate für RDP Verbindungen automatisch ausrollen

In der Standardeinstellung verwenden Windows Server selbst signierte Zertifikate für die RDP Verbindung. Die selbst signierten Zertifikate sorgen dann beim Herstellen der RDP Verbindung zu einem Windows Server für eine Zertifikatswarnung:

Warnung bei selbst signierten RDP Zertifikaten

Diese Warnung lässt sich vermeiden indem Zertifikate von ein Windows Zertifizierungsstelle automatisch auf den Servern ausgerollt und bei Bedarf auch erneuert werden. Die Installation einer Windows PKI habe ich in diesem Artikel beschrieben. In diesem Artikel geht es um das automatische Ausrollen der Zertifikate für die RDP Verbindung.

Template für Zertifikate erstellen

Damit Zertifikate für RDP Verbindungen ausgerollt werden können, wird zunächst ein neues Zertifikats-Template benötigt:

Template für RDP Zertifikate erstellen

Das vorhandene Template „Computer“ eignet sich schon ganz gut für RDP Zertifikate und kann daher dupliziert werden:

Neues Template

Im duplizierten Template müssen zunächst die „Application Policies“ auf dem Reiter „Extensions“ bearbeitet werden:

Eigenschaften der Vorlage

Die vorhandenen beiden Policies „Client Authentication“ und „Server Authentication“ werden entfernt:

Eigenschaften der Vorlage

Jetzt kann eine neue Application Policy hinzugefügt werden:

Eigenschaften der Vorlage

Da es aber noch keine Policy für RDP gibt, muss diese Policy zunächst erstellt werden:

Eigenschaften der Vorlage

Die neue Application Policy bekommt den Namen „Remote Desktop Authentication“ und als Object Identififier wird die OID „1.3.6.1.4.1.311.54.1.2 eingetragen (die bereits vorausgefüllten OIDs werden gelöscht):

RDP Application Policy

Die Dialoge können nun mit OK geschlossen werden:

RDP Application Policy

Auf dem Reiter Security bekommt jetzt die Gruppe „Domain Computer“ die entsprechenden Berechtigungen um das Zertifikat anzufordern:

Berechtigungen der Vorlage

Auf dem Reiter General wird zum Schluss noch ein Name für das Template vergeben, in diesem Fall ist es RDPCertificates. Zusätzlich kann die Gültigkeit entsprechend festgelegt werden:

Eigenschaften der RDP Vorlage

Der Dialog kann mit OK geschlossen werden und das neue Zertifikats-Template wird in der Übersicht angezeigt:

RDP Zertifikatsvorlage

Damit Zertifikate über das Template ausgestellt werden, muss das Template in der Zertifizierungsstelle als aufzustellende Vorlage angegeben werden:

aufzustellende Vorlage

Das soeben erstellte Template kann ausgewählt und hinzugefügt werden:

Auszustellende Zertifikatsvorlage

Jetzt kann eine Gruppenrichtlinie erstellt werden, welche das Zertifikat anfordert und für RDP Verbindungen aktiviert.

Gruppenrichtlinie für RDP Zertifikate

Auf einer OU kann nun eine neue Gruppenrichtlinie erstellt und direkt verknüpft werden:

Neue GPO

Der Name der Gruppenrichtlinie ist frei wählbar:

Neue GPO

Unter dem Pfad „Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Seurity“ findet sich die Einstellung „Server authentication certificate template“. Diese Einstellung muss aktiviert und der Name des zuvor erstellten Zertifikats-Templates angegeben werden. In meinem Fall also „RDPCertificates“:

Gruppenrichtlinie

Die Gruppenrichtlinie kann jetzt noch mit weiteren OUs verknüpft werden. Sobald die Gruppenrichtlinie auf den Servern angewendet wird, wird ein Zertifikat über das Template angefordert und für RDP aktiviert.

ausgestellte Zertifikate

Mehr ist nicht zu tun, wichtig ist nur, dass RDP Verbindungen mit dem FQDN hergestellt werden (nicht mit dem UNC Namen), da nur der FQDN auf dem Zertifikat angegeben ist:

RDP Zertifikat

17 Gedanken zu „Windows PKI: Zertifikate für RDP Verbindungen automatisch ausrollen“

  1. Welchen Vorteil bietet denn das hier beschriebene RDP Zertifikat gegenüber dem ebenso automatisch ausgerollten Computer-Zertifikat mit gleicher Qualifikation? Mal davon abgesehen würde ich als Leser die OID „1.3.6.1.4.1.311.54.1.2„ gerne verstehen.

    Antworten
  2. „ungenutzt“ ist relativ. Es wird sicher da ein oder andere mal vorkommen dass man auch auf einen Client per RDP muss. Wenn der ein passendes Zertifikat hat umso besser. Schaden kanns jedenfalls nicht.

    Antworten
  3. Wenn das enrollment für „Domain Computer“ gesetzt ist, bekommen das Zertifikat aber auch alle Client-Geräte oder?
    Könnte man das anders regeln, sodass nur Server das Zertifikat bekommen?

    Antworten
    • Deine Clients und deine Server sind hoffentlich nicht in der selben OU. Du setzt die GPO dann nur in der OU der Server ….würde ich vermuten.

      Antworten
    • Nein das natürlich nicht. Um die GPO mit Verwendung des RDP-Zertifikats gings mir auch gar nicht.

      Es geht mir vielmehr um das Autoenrollment von Zertifikaten, welches bei uns sowohl für Server als auch Clients aktiv ist. Wenn das Zertifikatstemplate jetzt enrollment-Berechtigungen für „Domain Computer“ bekommt, dann landet das Zertifikat ja auch auf allen Clients. Es liegt dort dann ungenutzt rum, aber ist trotzdem keine gute Variante.

      Antworten
  4. Wichtig hierbei: Das Template darf KEINE Leerzeichen im DisplayName haben, ansonsten wird das Zertifikat bei jedem Booten neu angefordert (Ist ein tolles Feature, wenn es für 2500 Clients ausgerollt wird…)

    Antworten
    • Das lernt man ja gleich am Anfang, dass man das identisch mit dem Vorlagennamen konfiguriert und Leerzeichen sind sowieso nie eine gute Idee bei sowas. ;)

      Antworten
      • Hm also ich bin jetzt kein Zertifikatsexpert aber vielleicht musst du die Zertifikatsstelle bei den Clients noch hinterlegen, damit Sie vertrauswürdig ist.

        Antworten
      • Unbekannter Herausgeber heißt aber afair, dass dein Client eben nicht der ausstellenden CA vertraut. Im Zweifel mach im Forum einfach mal einen Thread auf, da ist das einfacher als hier in den Kommentaren.

        Antworten
        • Ich habe jetzt herausgefunden, dass dies nur bei bereits gespeicherten RDP-Verbindungen passiert, nicht bei neuen. In der Registry habe ich aber keine gespeicherten Hashes gefunden. Merkwürdig.

        • Stehen die gespeicherten Verbindungen nicht im Password Safe von Windows? Ich mach das nie, deswegen nur eine Vermutung.

  5. Der Server hat in meinem Fall das Zertifikat bekommen, allerdings beschwert sich der RDP Client immer noch über das nicht vertrauenswürdige Zertifikat.
    Das Zertifikat im Store sieht gut aus. Root CA wird auch vertraut.
    Dann noch Tipps von MS das Zertifikat per WMI oder Registry zu setzen versucht, leider ohne Erfolg.
    Verbindung über FQDN.

    Danke und Grüße,
    MG

    Antworten
  6. Wenn das enrollment per gpo wie oben beschrieben durchgeführt wird, ist das autoenrollment als Berechtigung nicht notwendig. Das gpo enrollment ist aber am Ende eigentlich nur ein fallback, wenn der zertifikatsregistrierungsagent nicht konfiguriert wurde. Das sollte man aber tun, sonst sammeln sich über die Jahre am Server die abgelaufenen Zertifikate. Das könnte der Agent sonst gleich mit aufräumen. ;)

    Antworten

Schreibe einen Kommentar