DC Zertifikat Autoenrollment - Teil 2

In dem Blogbeitrag DC Zertifikat Autoenrollment - Teil 1 wurde bereits angekündigt, dass der folgende Blogbeitrag das Thema automatische Zertifikatserneuerung von Zertifikaten mit benutzerdefinierten Subject Alternative Names (SANs) hat.

In einigen Fällen, gerade bei der Einrichtung von LDAPS, kann es notwendig sein, dass das Domain Controller Zertifikat weitere SANs neben den standardmäßig enthaltenen SANs besitzt. Da wir nicht bei jeder Zertifikatserneuerungsperiode den Prozess manuell durchführen möchten, werden wir im Folgenden die automatische Zertifikatserneuerung von Zertifikaten mit benutzerdefinierten SANs konfigurieren. Das Auto-Enrollment an sich wurde bereits per GPO in dem vorherigen Blogbeitrag eingerichtet, daher möchten wir uns an dieser Stelle nicht weiter mit dieser Richtlinie und deren Einstellungen befassen. Der Prozess, um benutzerdefinierte SANs zu verwenden, bedarf einer initialen manuellen Konfiguration des Zertifikats.

Wir starten diesen Blogbeitrag daher mit der Einrichtung der Zertifikatsvorlage. Dazu öffnen wir auf unserer CA die Certification Authority und navigieren per Rechtsklick Certification Template > Manage in die Certificate Template Console.

Dort wählen wir die Kerberos Authentication Zertifikatsvorlage mittels Rechtsklick aus und duplizieren die Vorlage über Duplicate Template um die Standardvorlage nicht zu verändern.

Wir geben der neuen Zertifikatsvorlage im Bereich General einen intuitiven Namen. Anschließend wechseln wir in den Bereich Compatibility und setzen die Einstellung Certification Authority auf Windows Server 2012. Diese Einstellung kann ebenfalls höher gesetzt werden, wenn keine Windows Server 2012 in der Netzwerkumgebung vorhanden sind. Die sich öffnende Meldung über die Änderungen in der Zertifikatsvorlage bestätigen wir über OK.

Nun ändern wir die Einstellung Certificate recipient auf Windows 8 / Windows Server 2012. Die sich öffnende Meldung über die Änderungen bestätigen wir über OK.

Die getätigten Einstellungen bestätigen wir über Apply und wechseln in den Reiter Subject Name. Hier ändern wir die Einstellung zu Supply in the request. Es öffnet sich eine Sicherheitsmeldung,  welche wir mittels OK bestätigen.

Achtung: Aus dem Sicherheitsaspekt gesehen, sollte eine Genehmigung durch den Certificate Manager erfordert werden, wenn es dem Antragsteller erlaubt wird den Subject Name anzugeben. Diese Einschränkung verhindert allerdings in diesem Szenario, dass die Zertifikate automatisch erneuert werden. Eine Schutzmöglichkeit könnte darin bestehen, die ausgestellten Zertifikate zu überwachen und sicherzustellen, dass die angeforderten Identitäten sinnvoll sind und keine Sicherheitsrichtlinien verletzen.

Nach der Bestätigung des Sicherheitshinweises setzen wir den Haken im Kontrollkästchen Use subject information from existing certificates for autoenrollment renewal requests und bestätigen die getroffenen Einstellungen über OK.

Wir schließen die Certificate Template Console und veröffentlichen die eben erstellte Zertifikatsvorlage über einen Rechtsklick auf Certificate Templates > New > Certificate Template to Issue.

Im sich anschließend öffnenden Fenster wählen wir die eben erstellte Zertifikatsvorlage aus und bestätigen dies über OK.

Das Template wird uns anschließend in der Certificate Authority angezeigt und kann nun verwendet werden.

Nun möchten wir ein Domain Controller Zertifikat mit benutzerdefinierten Subject Alternative Names erstellen. Es gibt viele Möglichkeiten das Zertifikat zu erstellen, wir haben uns hier dafür entschieden, das Zertifikat per PowerShell zu erstellen.

Dazu wechseln wir auf unseren Domain Controller und öffnen die PowerShell. Anschließend setzen wir den folgenden Befehl ab, um das Zertifikat auszustellen:

Get-Certificate -Template „CustomSANKerberosAuthentication“ -DnsName DC01.sllab.local,LDAP.sllab.local,sllab.local,sllab -CertStoreLocation cert:\LocalMachine\My

Im Zertifikatsspeicher des Domain Controllers können wir nun das neu ausgestellte Zertifikat finden.

Damit ist die Konfiguration des Autoenrollments des Zertifikats mit benutzerdefinierten SANs abgeschlossen und dieses wird automatisch erneuert, sobald es abgelaufen ist.

Im nächsten Schritt werden wir verifizieren, dass das Autoenrollment funktionsfähig ist. Dies sollte nicht in einer Produktivumgebung getestet werden, da wir in den folgenden Schritten alle Zertifikate, die über diese Zertifikatsvorlage erstellt wurden, neu ausrollen. Damit soll das Autoenrollment ausgelöst werden. Dazu wechseln wir erneut auf unsere CA und öffnen die Certification Templates Console. Wir klicken per Rechtsklick auf unsere Zertifikatsvorlage und wählen die Option Reenroll All Certificate Holders.

Nun führen wir den Befehl certutil -pulse in einer PowerShell mit erweiterten Rechten auf unserer CA aus. Dieser Befehl löst die Autoenrollment Events aus.

Wir melden uns nun erneut auf unserem Domain Controller an und verifizieren, dass das Zertifikat erneuert wurde und die benutzerdefinierten SANs korrekt im Zertifikat eingetragen wurden.