Installation Windows 2008 Enterprise Root CA

Die meisten Firmen werden einfach mit einer internen privaten Zertifizierungsstelle arbeiten wollen. Auch wenn Windows 2008 ihnen die Installation sehr einfach macht, sollten Sie vorher schon ein paar Dinge vorbereiten und entschieden haben. Diese Installation beschreibt eine Windows 2008 CA auf einem Windows 2008 Domain Controller.

Die Installation einer CA auf einem DC ist nichts ungewöhnliches. Bedenken Sie aber, dass dieses Server nach der Installation der CA nicht mehr per DCPROMO verändert werden darf. Größere Firmen sollten überlegen, die CA auf einem Mitgliedsserver zu installieren.

Ich dokumentiere hier die Installation der Net at Work CA. Sie finden hier keine Daten, die sie Sicherheit schwächen würde, da Sie diese Daten auch problemlos aus dem Stammzertifikat, welches öffentlich ist, ermitteln können.

Die Zertifizierungsstelle ist in der Windows 2008 Namensgebung eine "Rolle" und wird daher über den Assistent für Rollen einfach addiert. Sobald Sie die Rolle "Active Directory Certificate Services" angewählt haben, entfaltet sich auf der linken Seite gleich der Baum der Schritte, die in der Folge zu durchlaufen sind.

Ich werde in der Folge nicht jedes Bild hier wiedergeben sondern nur die wichtigen Teile. Der erste Schritt ist schon die Auswahl der Komponenten. Per Default ist nur der erste Punkt aktiviert. Ich installiere aber immer noch das Web Enrollment mit, weil es damit sehr einfach ist, Zertifikate per Browser einzureichen, z.B. für Router, Apache-Webserver etc. Allerdings muss dann auch ein IIS mit auf der CA installiert sein. Darauf werden Sie aber auch hingewiesen.

Der nächste Schritt ist die Auswahl der Setup-Art. Als "kleine Firma" mit genau einer CA bietet sich hier die Enterprise CA an.

Im darauffolgenden Fenster ist der Standard eine "SubCA". Sie müssen selbst abwägen, ob Sie eine RootCA auch als Enterprise CA betreiben wollen. Der sicherste Weg ist natürlich eine "Offline-RootCA", die nicht im Netzwerk verbunden ist. Ich habe hier aber eine RootCA ausgewählt.

Dann geht es darum das Zertifikat für die StammCA zu erstellen. Wenn Sie eine bestehende CA von einem anderen System portieren, dann können Sie dessen Key weiter verwenden. In meinem Fall erstelle ich einen neuen privaten Schlüssel

Per Default verwendet Microsoft einen 2048-Schlüssel. Da RSA 768 schon als geknackt gilt sollten Sie mindestens 2048 oder sogar 4096 verwenden. Wobei die meisten öffentlichen Zertifizierungsstelle 2048 oder weniger als Schlüssellänge verwenden. Um Risiken der Kompatibilität zu vermeiden, sind 2048 Zeichen eine geeignete Einstellung.

Nun muss das Kind noch einen Namen bekommen. Wenn sie mehrere CAs installieren, dann tun sie gut daran, unterschiedliche Namen zu verwenden, damit diese gut zu unterscheiden sind.

Die Gültigkeit des Stammzertifikats können Sie im folgenden Fenster eingeben. Per Default schlägt Windows hier gerade mal 5 Jahre vor. Das ist schon fast lächerlich wenig, wenn man später z.B. Zertifikate für interne Webserver etc. ausstellen will. Wenn diese nicht mal nur ein Jahr gültig sein sollen, damit man sich den "Renew" erspart, dann sollte das Stammzertifikat länger gültig sein. Es ist aber eine individuelle Abwägung. Wer hier sehr lange Zeiträume einträgt, sollte die RückrufMöglichkeit über die CRL korrekt konfigurieren.

Zuletzt muss nur noch ein Pfad für die Datenbank festgelegt werden.

Die folgenden Schritte betreffen dann die Konfiguration des IIS, bis letztlich in einer Zusammenfassung noch einmal die Warnung sichtbar wird, das der Server ab nun nicht mehr umbenannt oder in eine andere Domäne verschoben werden kann.

Vielleicht haben Sie bemerkt, das der Assistent zwar viele Daten abgefragt hat, aber z.B. die Adresse der CRL, die später im Stammzertifikat enthalten ist, weder anzeigt noch erfragt. Hier können Sie nun nur hoffen, dass die CAPOLICY.INF-Datei mit eingelesen wurde.

Die Abschlussmeldung sollte nach einigen Minuten dann auch den Erfolg bestätigen.

Ein Neustart des Servers ist nicht erforderlich. Die neue CA taucht auch direkt in der Windows 2008 Management Oberfläche als neue Rolle auf.

Konfiguration

Der erster Schritt nach der Installation der CA ist gleich die Konfiguration, ehe Client und Computer schon sich ein Zertifikat holen. Ganz wird es nie zu vermeiden sein, da die CA automatisch startet und sich im Active Directory einträgt.

Vorlagen entfernen

Daher gehe ich umgehend in die Vorlagen, die mit der CA verbunden sind. Hier sehen Sie die Vorlagen, die per Default aktiviert sind

Ich entferne hier sofort die Vorlagen, die "gefährlich" sein könnten. das sind z.B.

  • Basic EFS
    Damit könnten die Anwender dann Dateien mittels EFS verschlüsseln. Das sollten sie erst zulassen, wen Sie per GPO auf allen Desktops einen Recovery Agent konfiguriert haben oder die privaten Schlüssel in der CA hinterlegen lassen
  • User
    Benutzer können damit Mails digital signieren, was vielleicht nicht in ihrem Interesse ist. Schlimmer wäre aber, dass die Mitarbeiter damit auch intern verschlüsseln können, da die Zertifikate im Active Directory veröffentlicht werden.
  • RootCA /Subordinate
    Wenn Sie eine RootCA installiert haben und diese nur eine untergeordnete CA signieren soll, dann können sie gleich alle Vorlagen mit Ausnahme der "Subordinate Certification Authority"-Vorlage entfernen.

Zu einer ordentlichen CA-Konfiguration gehört durchaus, dass Sie sich Gedanken darüber gemacht haben, wie Sie die Folgen von verlorenen Zertifikaten (samt deren private Key) reduzieren können. Per Default liegt ein ausgestelltes Zertifikat samt privatem Schlüssel auf dem Desktop im Benutzerprofil. Ohne Sicherung (z.B. Roaming Profiles) kann der Mitarbeiter aber auch sonst niemand beim Verlust nicht mehr die empfangenen verschlüsselten Mails lesen.

Stammzertifikat prüfen

Die zweite Kontrolle gilt nun dem Stammzertifikat. Dieses wird durch die Installation schon im Active Directory als "Trusted Root" addiert, so dass es nur eine Frage der Zeit ist, bis die (Windows-) Clients im Forest alle dieses Zertifikat übernommen haben.

Prüfen Sie daher das Stammzertifikat noch einmal genau auf Werte wie Gültigkeit, Name, Bitlänge. Wichtig ist hier auch besonders der Pfad zur CRL.

CRL erreichbar machen

Natürlich sollten Sie nun auch dafür sorgen, dass diese CRL erreichbar ist. Ein passender DNS-Eintrag in der internen Zone auf den Webserver der Zertifizierungsstelle erlaubt schon einmal die interne Auflösung. Ein Test mit dem internen Browser sollte direkt die Datei liefern.

http://crl.netatwork.de/CertEnroll/nawca2010.crl

Aber auch von extern muss diese URL erreichbar sein. Addieren Sie also auch im externen DNS den Hostnamen und veröffentlichen Sie die URL. Hier haben Sie nun die Wahl, ob Sie über ihre Firewall wirklich externe anonyme Clients direkt auf den Webserver ihrer Zertifizierungsstelle zugreifen lassen. Die meisten Firmen nutzen für die Verteilung der CRL einen anderen Webserver und kopieren einfach den Inhalt der CA regelmäßig auf diesen Webserver. So könnten Sie sogar die CRL im Internet auf ihre offizielle Präsenz legen, solange der DNS-Eintrag wie crl.firma.de auf den Server verweist und dieser auf den Hostheader auch reagiert.

Globale CA Einstellungen: MaxZertifikatalter

Auch wenn wir in einem späteren Schritt die Templates (nur möglich mit einer Windows Enterprise CA) derart ändern, dass diese länger als 1 Jahr gültig sind, beschränkt ein Registrierungsschlüssel in der Zertifizierungsstelle das Ausstellen von Zertifikaten auf 2 Jahre. Da ich aber z.B.: die Zertifikate für interne Server gern auf 5 Jahre ausstellen würde, muss ich das ändern.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\NAME DER CA]
"ValidityPeriod"="Years"
"ValidityPeriodUnits"=dword:0000001e

Sie können die Werte aber auch über CertUtil einstellen:

REM
REM Set the validity period für issued certificates
REM
certutil -setreg ca\ValidityPeriodUnits 5
certutil -setreg ca\ValidityPeriod "Years"

REM: Quelle: http://technet.microsoft.com/en-us/library/cc739715%28WS.10%29.aspx

Selbst eine Obergrenze von 30 Jahren ist nicht wirklich falsch, da die Zertifikatsvorlagen immer noch die Obergrenze vorgeben. Allerdings sollten Sie die Grenze so setzen, dass sie ihrer Umgebung angemessen ist.

Templates anpassen und zuweisen

Primär habe ich das Zertifikat für die Anwender schon einmal von dem 1 Jahr Gültigkeit auf 5 Jahre gesetzt und die Verlängerung von 6 Wochen auf 3 Monate erweitert.

Das gleiche dann noch mal für die Computerzertifikate die wir u.a. für die Anmeldung am Netzwerk per 802.1x benötigen.

Für den nächsten Schritt haben wir auch gleich noch das Template für den "Key Recovery Agent" entsprechend kopiert und angepasst.

Private Schlüssel sichern

Auf der Zertifizierungsstelle würde ich natürlich gerne einstellen, dass die privaten Schlüssel der ausgestellten Zertifikate zentral gespeichert werden. Damit dies aber möglich ist, muss ich zuerst mindestens ein "Key Recovery Certificate", z.B. für den Administrator, erstellen. Diese Vorlage ist aber per Default nicht konfiguriert, und muss daher der CA erst hinzugefügt werden. Das geht über die Verwaltungskonsole

Addieren Sie dann in der Liste das hier schon angezeigte Template für den "Key Recovery Agent" bzw. das von ihnen angepasste Termplate. Dann müssen Sie sich als Administrator so ein Zertifikat ausstellen und dieses natürlich sehr gut sichern. Erst dann können Sie in der Zertifizierungsstelle auch die Archivierung von privaten Schlüsseln aktivieren:

Dies ist aber erst mal nur die globale Einstellung, dass die Zertifizierungsstelle einen entsprechend sicheren Speicher anbietet. Sie müssen dann schon noch pro Template vorgeben, dass der private Schlüssel archiviert werden soll. Hier am Beispiel von NAWUser

Erst dann ist sichergestellt, dass für jedes Zertifikat, welches anhand dieses Template ausgestellt wird, der private Schlüssel auf der CA zu liegen kommt.

Globale CA Einstellungen: SAN-Zertifikate

Bei Zertifizierungsstelle unter Windows 2003 war es noch erforderlich, die Anforderungen mit "Subject Alternate Names"-Zertifikaten extra zu zulassen.

certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc

Bei Windows 2008 gilt dies genauso.

CA sichern

Die komplette Konfiguration der Zertifizierungsstelle wie auch die Datenbank mit den Zertifikaten wird von Windows Server Backup über den Systemstatus mit gesichert. Das gilt natürlich nur, wenn Sie auch wirklich ein Backup durchführen.

Verwalten per PowerShell

Die meisten Einstellungen einer CA erfolgen per GUI, CertUtil oder RegEdit. Aber schicker ist natürlich PowerShell:

Weitere Links