Active Directory Zweistufige PKI aufbauen
Diese Anleitung zeigt, wie Sie schnell und einfach eine Active Directory Zweistufige PKI aufbauen können.
Zeitplanung
Diese Anleitung installiert eine Root sowie eine Issuing CA - dieser Vorgang nimmt 3-6 Stunden! in Anspruch.
Was ist eine PKI und was heißt "zweistufig"?
Eine PKI (Public Key Infrastructure) verwaltet digitale Zertifikate und Schlüssel.
Zweistufig bedeutet: - Root CA: Oberste Vertrauensstelle - Intermediate CA: Wird von der Root CA bestätigt und stellt die eigentlichen Zertifikate aus.
Ziel: Die Root CA bleibt dadurch besser geschützt.
Vorbereitungen¶
Wir brauchen zwei VMs:
| Server | Rolle | CPU | RAM | Disk | OS | AD-joined |
|---|---|---|---|---|---|---|
| PKI01 | Root CA | 1 vCPU | 4 GB | 30 GB | Windows Server 2019 Standard oder höher | Nein |
| PKI02 | Issuing CA | 1 vCPU | 4 GB | 30 GB | Windows Server 2019 Standard oder höher | Ja |
Auf jeder VM wird außerdem folgendes ZIP File entpackt (Download)
Innerhalb des ZIP Files sind zwei Ordner - einmal rootCA und einmal issuingCA - diese Ordner auf den jeweils passenden Servern kopieren, sodass auf jedem Server folgende Verzeichnisstruktur erstellt ist:
Hinweis
Über jedem Skript in dieser Anleitung befindet sich der passende Dateiname aus dem ZIP File.
Außerdem brauchen wir eine Webadresse, die aufrufbar sein muss. Wir nehmen in dieser Anleitung folgende:
- pki.ad.intern
Also los geht's!
PKI01 - Die Root CA¶
CA Policy konfigurieren¶
Zuerst muss im Windows-Pfad (C:\Windows) eine Datei namens "capolicy.inf" mit folgendem Inhalt angelegt werden:
Hinweis
Damit legen wir fest, dass die Root CA keine CRL bekommt und auch keine AIA - also keine Sperrlisten. Das ist wichtig, da es sich hier um eine offline CA handelt.
Rollen und Features installieren¶
Als nächstes werden folgende Rollen und Features installiert:
- Active Directory-Zertifikatsdienste (inkl. der vorgeschlagenen Tools)

Dann wird bei den Rollendiensten nur die "Zertifizierungsstelle" ausgewählt:

Zum Schluss die Zusammenfassung der ausgewählten Rollen:

Jetzt kann die Konfiguration der Rolle gestartet werden:

Active Directory-Zertifikatsdienste konfigurieren¶
Zuerst wählen wir den User, mit dem das Setup durchgeführt werden soll:

Als nächstes konfigurieren wir die Zertifizierungsstelle:

Nachfolgend konfigurieren wir folgende Einstellungen:
- Installationstyp: Eigenständige Zertifizierungsstelle
- ZS-Typ: Stammzertifizierungsstelle
- Privater Schlüssel: Neuen privaten Schlüssel erstellen
- Kryptografie:
- Schlüssellänge: 4096
- Hashalgorithmus: SHA256

- ZS-Name:

- Gültigkeitsdauer: 15 Jahre
Dann den Assistenten abschließen und es sollte folgende Meldung erscheinen:

Wenn wir jetzt die MMC Konsole "certsrv.msc" aufrufen, sollte es so aussehen:

Jetzt ist die CA konfiguriert und wir fahren mit der Post Konfiguration fort. Dazu führen wir jetzt folgendes Skript in der Eingabeaufforderung aus:
Achtung
Das Skript muss!! in der Eingabeaufforderung (also "cmd.exe") ausgeführt werden!
Hinweis
Die hervorgehobenen Zeilen (2, 10 und 11) müssen an die eigene Umgebung angepasst werden!
Erklärung
Mit diesem Skript setzen wir verschiedene Werte und auch die CRL Publication URL, die dann auf der Issuing CA liegen wird. Dadurch, dass die Root CA nicht AD-integriert ist, müssen wir die URL hier selbst setzen.
Nach der erfolgreichen Ausführung von allen Befehlen, müssen wir die Sperrliste der CA neu publishen. Dafür gehen wir wieder in die "certsrv.msc":


Nun liegt sowohl das Zertifikat der Root CA, sowie auch die CRL in dem Verzeichnis "C:\Windows\System32\CertSrv\CertEnroll". Wir kopieren beide Dateien in den am Anfang erstellen "rootCA" Ordner:
| rootCA/Install/02_rootCA_copy.cmd | |
|---|---|
Diese beiden kopierten Dateien kopieren wir jetzt auf den PKI02 Server (den Issuing CA Server) in den gleichen Ordner "rootCA".
Weiter geht's jetzt mit der Installation der Issuing CA.
PKI02 - Die Issuing CA¶
Root CA importieren¶
Die eben kopierten Dateien publishen wir jetzt auf der Issuing CA:
| issuingCA/Install/01_IssuingCA_Pre_Konfiguration.cmd | |
|---|---|
Folgende Ausgabe sollte erscheinen:
Rollen und Features installieren¶
Als nächstes werden auch auf der Issuing CA folgende Rollen und Features installiert:
- Active Directory-Zertifikatsdienste (inkl. der vorgeschlagenen Tools)

Dann wird bei den Rollendiensten nur die "Zertifizierungsstelle" ausgewählt:

Zum Schluss die Zusammenfassung der ausgewählten Rollen:

Jetzt kann die Konfiguration der Rolle gestartet werden:

Active Directory-Zertifikatsdienste konfigurieren¶
Zuerst wählen wir den User, mit dem das Setup durchgeführt werden soll:
Hinweis
Hier muss ein Administrator gewählt werden, der der AD Gruppe "Enterprise Admins" (oder zu deutsch "Unternehmens-Administratoren") angehört!

Als nächstes konfigurieren wir die Zertifizierungsstelle:

Nachfolgend konfigurieren wir folgende Einstellungen:
- Installationstyp: Unternehmenszertifizierungsstelle

- ZS-Typ: Untergeordnete Zertifizierungsstelle

- Privater Schlüssel: Neuen privaten Schlüssel erstellen
- Kryptografie:
- Schlüssellänge: 4096
- Hashalgorithmus: SHA256

- ZS-Name:

- Gültigkeitsdauer: 15 Jahre
- Zertifikatsanforderung:

Zum Schluss erhalten wir eine Zusammenfassung:

und folgende Fehlermeldung als Ergebnis:

Wir verschieben nun noch die entstandene ".csr" Datei im "C:\" Ordner in den "C:\issuingCA" Ordner.
Issuing CA signieren¶
Jetzt kopieren wir die CSR Datei, die wir eben mit dem Assistenten erstellt haben, auf die Root CA in den gleichen Ordner, wie auch auf der Issuing CA "C:\issuingCA". Danach öffnen wir wieder die MMC Konsole "certsrv.msc" und navigieren zu folgendem Pfad:

Im nächsten Fenster wählen wir die eben abgelegte CSR Datei aus. Diese liegt unter "C:\issuingCA".
Sobald der Vorgang abgeschlossen ist, erscheint unter "Ausstehende Anforderungen" jetzt eine neue Anforderung, welche wir genehmigen:

Nun ist unsere CSR signiert und das Zertifikat ist unter "Ausgestellte Zertifikate" zu finden. Wir exportieren das Zertifikat und legen es unter "C:\issuingCA" ab:

Nach fertiggestelltem Export erhalten wir diese Zusammenfassung:

Issuing CA konfigurieren¶
Jetzt ist die CA eingerichtet und wir fahren mit der Post Konfiguration fort. Dazu führen wir jetzt folgendes Skript in der Eingabeaufforderung aus:
Achtung
Das Skript muss!! in der Eingabeaufforderung (also "cmd.exe") ausgeführt werden!
Hinweis
Die hervorgehobenen Zeilen (2, 10 und 11) müssen an die eigene Umgebung angepasst werden!
Nach der erfolgreichen Ausführung von allen Befehlen, müssen wir das vorhin erstelle Zertifikat in der Issuing CA hinterlegen. Dafür gehen wir wieder in die "certsrv.msc" und wählen die CER Datei aus "C:\issuingCA" aus:

Zuletzt starten wir den Zertifikatsdienst:

Dieser Vorgang muss!! ohne Fehler durchlaufen. Wenn ja, dann läuft unsere CA nun.
Nun zum letzten Schritt.
Installation des IIS Webservers für die CRL und die Zertifikatsanforderung und -ausstellung¶
Sofern jetzt noch nicht erledigt, muss folgender DNS Eintrag angelegt werden, welcher auf die PKI02 zeigen muss:
- pki.ad.intern (CNAME)
Nach der erfolgreichen Ausführung von allen Befehlen, müssen wir die Sperrliste der CA neu publishen. Dafür gehen wir wieder in die "certsrv.msc":


Nun liegt sowohl das Zertifikat der Issuing CA, sowie auch die CRL in dem Verzeichnis "C:\Windows\System32\CertSrv\CertEnroll". Wir kopieren beide Dateien in den am Anfang erstellen "issuingCA" Ordner. Zusätzlich kopieren wir die Root CA Files auch mit dort hinein:
| issuingCA/Install/03_IssuingCA_copy.cmd | |
|---|---|
Aufgabenplaner Job¶
Da diese Dateien regelmäßig erreichbar sein müssen, damit Clients diese Listen prüfen können, legen wir folgenden Job im Aufgabenplaner an:

IIS Installation und Konfiguration¶
Um diese Dateien jetzt erreichbar zu machen, installieren wir den IIS Webserver:

Den Rest belassen wir auf Standard und klicken den Assistenten einfach nur durch.
Im Server-Manager starten wir die IIS Management Konsole:

Und in der IIS Konsole wird ein neues virtuelles Verzeichnis hinzugefügt:

Hinweis
Hier muss der Pfad gewählt werden, wo die CRL liegt und der Name muss exakt übereinstimmen mit dem Namen aus dem Skript von oben Link
Im IIS erlauben wir jetzt nur noch einen Request Filter:

Wenn alles richtig konfiguriert wurde, findet man in der MMC Konsole "pkiview.msc" jetzt die CA mit der Root CA und dürfte nirgendswo ein rotes X sehen.
CAWeb Installation¶
Im Server-Manager wird folgende Rolle installiert:

Nach Installation wird der Einrichtungsassistent gestartet:

Die CAWeb Rolle wird entsprechend konfiguriert:

Und folgendes Ergebnis kommt raus:

Ergebnis¶
Nach erfolgreicher Installation findet man unter "http://pki.ad.intern/cert" alle Root, sowie Issuing CA Zertifikate und CRL's sowie unter "http://pki.ad.intern/CertSrv" die Webanwendung zum Ausstellen von Zertifikaten.