UCS 4.1 RootCA und Windows 2012 R2 Terminalserver Zertifikat

german

#1

Hallo zusammen,

wir testen gerade das Anbinden eines Windows Server 2012 R2 als Terminalserver unter einer von UCS 4.1 als DC verwalteten Domain. Soweit funktioniert auch alles einwandfrei, der Server lässt sich ganz normal in die Domäne joinen usw. Jedoch habe ich Probleme das standardmäßige selbst-signierte Zertifikat für Zugriff mittels RDP auszutauschen.

Mit dem vorinstallierten selbst-signierten Zertifikat bekommt man beim einwählen immer eine Sicherheitswarnung, da die Clients natürlich nur die UCS RootCA kennen und das von Windows eigens erstellte Zertifikat nicht bekannt ist.

Meine Idee war nun ein Rechnerzertifikat über UCS zu erstellen (wie hier beschrieben: wiki.univention.de/index.php?tit … rtificates) und dieses dann einfach im Terminalserver zu importieren.

Hier fangen aber die Probleme an, über die GUI lässt es sich erst gar nicht installieren mit dem Hinweis, dass das Zertifikat nicht den Anforderungen des Remote Desktop Services entspricht.
Über die Kommandozeile lässt es sich zwar installieren (wie hier beschrieben: it-training-grote.de/downloa … ficate.pdf), jedoch bekomme ich dann beim Versuch mich mittels RDClient einzuwählen eine neue Fehlermeldung, dass die Sperrliste der Zertifizierungsstelle nicht überprüft werden konnte.

Hat jemand hiermit bereits Erfahrungen oder schon einmal einem Terminalserver ein Zertifikat der UCS RootCA verpasst?

Vielen Dank vorab und Grüße,

Daniel


#2

Hallo,

vielleicht habe ich gerade einen Denkfehler, aber die Kommunikation geschieht von Windows Client zu Windows Terminalserver, richtig? Ist das hier ggf. hilfreich: https://technet.microsoft.com/de-de/library/dn781533(v=ws.11).aspx - Ansonsten gibt es hier Informationen zu den Zertifikatssperrlisten: https://technet.microsoft.com/de-de/library/cc753863(v=ws.11).aspx
Ist das bereits hilfreich?

Gruß,
Jens Thorp-Hansen


#3

Hallo Herr Hansen,

vorab erst einmal vielen Dank für Ihre Antwort.
Ich habe mir das angeschaut, aber leider ist der erste Link zum technet bzgl. erstellen eines Zertifikats bei mir nicht möglich, der Server hat das Programm certsrv.msc nicht, da er ja nur ein MemberServer innerhalb der UCS Domäne ist und kein eigener Active Directory DC.
Mir ist auch bisher nicht bekannt, dass es möglich wäre eine Windows Server Zertifizierungsstelle unterhalb der UCS Zertifizierungsstelle zu betreiben. Wenn das natürlich möglich ist wäre es ideal, da es die komplette Erstellung von Zertifikaten für Windows Rechner vereinfachen würde - man könnte die Microsoft Templates nutzen etc.

Da mir aber nicht bekannt ist wie und ob das geht, ging ich eigentlich davon aus das Zertifikat über die UCS CA erstellen zu müssen. Hierzu gibt es ja auch die CoolSolution die beschreibt, wie ich aus der UMC heraus Rechner- und Benutzerzertifikate erstellen kann.

Mein Problem hierbei ist nur, dass dem Zertifikat welches über diese Methode erstellt wird einige Informationen fehlen welche angepasst werden müssten:

  • Der CommonName muss der komplette FQDN des Rechners sein (z.B.) terminalserver.domain.local --> Dieses Problem lässt sich noch lösen, indem man den Rechnername im UMC auf die komplette FQDN ändert
  • KeyUsage des Zertifikats muss wie folgt lauten: “dataEncipherment, keyEncipherment”
  • extendedKeyUsage muss “serverAuth” lauten

So wie ich das verstanden habe, könnte man diese Punkte in der openssl.cnf hinterlegen. Auf dem UCS im Zertifikate Ordner des Rechners ist auch eine openssl.cnf hinterlegt (etc/univention/ssl/windows-hosts/terminalserver.domain.local) jedoch ist mir nicht bekannt, wie ich das Zertifikat neu generieren kann und dabei die modifizierte openssl.cnf hierzu herangezogen wird.

Ich denke, wenn ich wie oben beschrieben ein entsprechendes Zertifikat erstellen könnte, würde dies auch vom Server-Manager des Windows 2012 R2 Servers als RDS Zertifikat akzeptiert werden. Bzgl. des Fehlers mit der Sperrliste müsste man dann mal testen, ob dieser wieder auftaucht. Es könnte nämlich auch sein, dass ich diesen Fehler bekommen habe, da mein Rechner mit dem ich mich per RDP verbinden wollte nicht in der Domäne gejoint ist.

Viele Grüße,

Daniel


#4

ah okay, dann hätte ich einen weiteren ggf. hilfreichen Link aus diesem Forum für Sie: [url]Extensions für SSL Zertifikaterstellung steuern] dort werden auch SDB Artikel zur Zertifikatserstellung verlinkt.


#5

Hallo zusammen,

zu aller erst noch einmal vielen Dank an Herr Hansen, der Link zu dem anderen Topic war letztendlich der richtige Tipp! Ich werde folgend auch noch meine Vorgehensweise für die Nachwelt beschreiben, falls jemand mal ein Zertifikat braucht mit zusätzlichen Eigenschaften.

Vorab jedoch noch die Info, dass der Weg über das Plugin “windows-client-cert” nicht Zielführend ist, da beim generieren dieser Zertifikate über die UMC nicht das Extension-Script beachtet wird, sondern nur über den weg “univention-certificate” über die CLI.

Hier meine Vorgehensweise:

  1. SSL Extensions über UCR auf Script verweisen: /etc/usr/univention-ssl/extensions.sh
  2. extensions.sh in /etc/usr/univention-ssl/extensions.sh erstellen:createHostExtensionsFile () { echo "/etc/univention/ssl/${1}.ext" }
  3. in /etc/univention/ssl/.ext die Erweiterungen schreiben:
    Bsp. für RDS Zertifikat:

[code]extensions = myx509v3
[ myx509v3 ]

ucs defaults

basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = dataEncipherment, keyEncipherment
extendedKeyUsage = serverAuth
crlDistributionPoints=URI:https:///ucsCA.crl
[/code]

  1. Mittels "univention-certificate new -name " neues Zertifikat erstellen

  2. in durch Script erstellten Zertifikatsordner wechseln

  3. *.pfx file erstellen für Windows Server: openssl pkcs12 -export -out cert.pfx -inkey private.key -in cert.pem

  4. Auf Windows Server mittels MMC Snap-In in persönliche Zertifikate Ordner importieren, dann importiertes Zertifikat in RDS Zertifikate Ordner kopieren

  5. Zertifikat öffnen und aus Detailseite Fingerabdruck auslesen

  6. per elevated cmd folgenden Befehl absetzen wmic /namespace:rootcimv2TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="Fingerabdruck"
    INFO zu 9): Beim kopieren des Fingerabdrucks ist mir aufgefallen, dass oft noch ein unsichtbares ? vorangestellt ist, welches erst im CMD wieder sichtbar ist, also bitte vor dem Absetzen des Befehls im CMD-Fenster noch einmal kontrollieren, dass dem Fingerabdruck kein “?” vorangestellt ist!

  7. RDS-Dienst neu starten