Server 2008/2012: PKI installieren (Teil 2)

In Teil 1 wurde die Root-CA installiert, die später offline (also runtergefahren) werden soll. Jetzt kümmern wir uns aber zunächst um die Sub-CA die Active Directory integriert werden soll. Dies ist der zweite Teil der PKI Installation.

Als Erstes wird das Zertifikat und die Sperrliste der Root-CA im Active Directory veröffentlicht. Am einfachsten ist das per CMD:

certutil –dspublish –f FWCA01_FrankysWeb-Root-CA.crt Rootca

certutil –dspublish –f FrankysWeb-Root-CA.crl

image

Nach einem Neustart des Servers oder „gpupdate /force“ sollte das Zertifikat der Root-CA in dem Speicher für Vertrauenswürdige Stammzertifizierungsstellen sichtbar sein

image

Wie schon bei der Root-CA, wird auch bei der Sub-CA, zuerst die CAPolicy.inf im Windows Verzeichnis abgelegt. Die CAPolicy hat den folgenden Inhalt

[Version]
Signature = "$Windows NT$"

[certsrv_server]
LoadDefaultTemplates = 0
RenewalKeyLength = 2048
RenewalValidityPeriodUnits = 5
RenewalValidityPeriod = years

Nachdem die CAPolicy.inf im Windows Verzeichnis liegt, kann die Sub-CA installiert werden:

image

Der Typ der CA ist diesmal „Unternehmen“ und nicht wie bei der Root-CA „Eigenständig“

image

Da es sich in diesem Fall um eine Sub-CA handelt muss „Untergeordnete Zertifizierungsstelle“ ausgewählt werden

image

Der Assistent soll einen neuen privaten Schlüssel erstellen

image

Hier ist es wichtig welche Einstellungen gewählt werden, ich nehme SHA256 und 4096Bit Keylänge. Das sollte eine Weile halten.

image

Namen der SubCA festlegen:

image

Und die Zertifikatsanforderung speichern

image

Der Rest ist wieder „Weiter..Weiter..Fertigstellen“… Diese Warnung am Ende der Installation ist normal, da noch kein gültiges Zertifikat vorhanden ist:

image

Nachdem die Installation abgeschlossen ist, muss die Zertifikatsanforderung auf die Root-CA kopiert werden. Die Anforderung findet sich unter C:\, bei mir hat die Anforderung den Namen „DC1.frankysweb.local_FrankysWeb-Sub-CA.req“

image

Mit einem Rechtsklick in der Zerstifizierungsstellen Konsole der Root-CA kann die Anforderung eingereicht werden, dazu wird die Anforderungsdatei ausgewählt.

image

Jetzt findet sich jetzt ein neuer Eintrag unter „Ausstehende Anforderungen“

image

Diese Anforderung kann genehmigt werden, indem unter „Alle Aufgaben“ auf „Ausstellen“ geklickt wird.

image

Unter „Ausgestellte Zertifikate“ findet sich jetzt das Zertifikat der Sub-CA. Mit einem Doppelklick kann es angezeigt werden.

image

Unter dem Reiter „Details“ lässt es sich in eine Datei kopieren (SubCA.cer). Die Datei kann nun auf die Sub-CA kopiert werden, sie wird später benötigt.

Jetzt wird die SubCA konfiguriert. Dies geschient wieder mit einer Batch-Datei (Achtung: Anpassungen nötig, siehe unten)

:: CA konfigurieren
:: www.frankysweb.de

:: siehe https://www.frankysweb.de/

:: Configuration Naming Context (Forestroot)
certutil -setreg CA\DSConfigDN "CN=Configuration,DC=frankysweb,DC=local"


::Maximale Zertifikatsgltigkeit auf 5 Jahre festlegen (Standard: 2 Jahre)

certutil -setreg CA\ValidityPeriodUnits 5
certutil -setreg CA\ValidityPeriod "years"


::Sperrlisten und Deltasperrlisten Veröffentlichungsintervalle konfigurieren
::Sperrliste: Alle 4 Tage
::Delta Sperrliste: Alle 12 Stunden

certutil -setreg CA\CRLPeriodUnits 3
certutil -setreg CA\CRLPeriod "days"
certutil -setreg CA\CRLDeltaPeriodUnits 12
certutil -setreg CA\CRLDeltaPeriod "hours"


::Pfade für die Sperrlisten konfigurieren
certutil -setreg CA\CRLPublicationURLs "65:%WINDIR%\system32\CertSrv\CertEnroll\%%3%%8%%9.crl\n79:LDAP:///CN=%%7%%8,CN=%%2,CN=CDP,CN=Public Key Services,CN=Services,%%6%%10\n6:http://ca.frankysweb.de/cert/%%3%%8%%9.crl\n65:file://\\dc1.frankysweb.local\cadata$\%%3%%8%%9.crl"

:: Pfade für die AIA-Extension-URLs
certutil -setreg CA\CACertPublicationURLs "1:%WINDIR%\system32\CertSrv\CertEnroll\%%1_%%3%%4.crt\n3:LDAP:///CN=%%7,CN=AIA,CN=Public Key Services,CN=Services,%%6%%11\n2:http://ca.frankysweb.de/cert/%%1_%%3%%4.crt"

::Auditing aktivieren
certutil -setreg CA\AuditFilter 127

Folgende Anpassungen sind je nach Umgebung nötig:

Zeile 7: Hier muss die Active Directory Konfigurationspartition angegeben werden. Meine AD-Domain heißt frankysweb.local. Daher ist es bei mir „CN=Configuration,DC=frankysweb,DC=local“. Der entsprechende Eintrag lässt sich per ADSI-Edit von einem Domain Controller ermitteln:

image_thumb2

Zeile 27 und Zeile 30: Wenn sichergestellt werden soll, dass die Sperrliste auch von externen Clients erreichbar sein soll (Wichtig bei Clients ohne Verbindung zum AD), muss am Ende der Zeile einen Webserver angeben, der aus dem Internet erreichbar ist. Wer nur AD-Mitglieder bedienen muss, kann das Ende der Zeile entfernen (Nicht die ganze Zeile, nur das ab „n2“). Ich empfehle allerdings eine gültige URL einzutragen, später dazu mehr.

Sobald die nötigen Anpassungen durchgeführt wurden kann die Batch Datei ausgeführt werden.

Danach kann das Zertifikat der Sub-CA installiert werden. Dazu wird in der Zertifizierungsstellen MMC der Sub-CA mit einem Rechtsklick auf die CA und dann auf  „Alle Aufgaben“ –> „Zertifizierungsstellenzertifikat installieren“ geklickt. Dann wird das Zertifikat der SubCA (SubCA.cer) ausgewählt und installiert:

image

Nachdem das Zertifikat installiert wurde, kann die CA gestartet werden.

image

So. Jetzt haben wir eine Sub-CA. Durch die CAPolicy.inf wurde festgelegt, dass keine Standard Vorlagen veröffentlicht werden sollen. Daher ist die Liste der Zertifikatsvorlagen leer:

image

Somit werden keine Rechner automatisch Zertifikate beantragen und ausgestellt bekommen, es sei denn es wird eine entsprechende Vorlage erstellt. Benutzer können also nicht einfach die EFS-Verschlüsslung oder Bitlocker verwenden, außer wir erstellen eine entsprechende Zertifikatsvorlage und erlauben es den Benutzern. Mit dieser Art der Konfiguration einer PKI, erschlägt man viele Szenarien und behält die Kontrolle für was und welchen Zweck Zertifikate im Unternehmen verwendet werden. Denn nur wenn der Admin eine entsprechende Vorlage mit einem bestimmten Zweck, für eine bestimmte Benutzergruppe erstellt, kann das Zertifikat registriert und genutzt werden. In der „Weiter…Weiter…Fertigstellen“-Installation einer PKI kann jeder Benutzer Verschlüsselung benutzen, ohne entsprechende Key-Recovery Agents lassen sich verschlüsselte Daten aber nicht entschlüsseln, wenn zum Beispiel der Benutzer das Unternehmen verlässt oder der private Schlüssel verloren geht.

Aber wir sind noch nicht ganz fertig, denn es fehlt noch der Download der Sperrlisten via http… (Teil 3)

21 Kommentare zu “Server 2008/2012: PKI installieren (Teil 2)”

  1. Besten Dank für den tollen Beitrag, wie eine zweistufige CA richtig installiert wird. Oben in der CAPolicy.inf ist noch ein Fehler, hier haben sich die HTML p-Tags eingeschlichen.

  2. Moin,

    vielen Dank für die ausführliche Anleitung. Allerdings bekomme ich bei dem Versuch die Sperrliste der Root-CA zu veröffentlichen immer die Fehlermeldung

    “ ldap: 0xa: 0000202B: RefErr: DSID-0310082F, data 0, 1 access Points
    ref1: ‚unavailableconfigdn‘

    CertUtil: -dspublish-Befehl ist fehlgeschlagen: 0x8007202b (WIN32: 8235 ERROR_DS_REFERRAL)
    CertUtil: Eine Referenzauswertung wurde vom Server zurückgesendet. „.

    Dadurch kann ich vermutlich auch nicht die Sub-CA starten, da die Sperrliste nicht überprüft werden kann.
    Hatte vielleicht jemand das gleiche Problem und kann mir weiterhelfen?
    Besten Dank.

  3. Edit: Für alle die das Problem eventuell auch haben: Ich habe eine neue Sperrliste der Root-CA veröffentlicht und diese dann mit CertUtil erfolgreich veröffentlichen können.
    RootCA–>Gesperrte Zertifikate (Rechtsklick) –>Alle Aufgaben–>Veröffentlichen–>Neue Sperrliste.

  4. Hallo Frank,

    das Problem aus dem Teil 1 habe ich gelöst (Remote Desktop war nicht aktiviert).
    Ich habe aber noch Verständnisfragen zum Ende des 1. Teils und zu Teil 2:
    Ich habe die erstellten Zertifikate kopiert und auf C$ des Sub-Ca-Servers kopiert. ist das soweit richtig?
    Dann steht ja am Anfang von Teil 2, dass das Zertifikat und die Sperrlisten per CMD veröffentlicht werden. Das geschieht aber auf dem Root-CA..oder? Und die 2. Frage…Was bedeutet bei:
    „certutil –dspublish –f FWCA01_FrankysWeb-Root-CA.crt Rootca“
    das „FWC01“? Muss ich das ersetzen?
    Sorry für die DUMME Fragen!
    Gysbert

  5. Hallo…Frank,

    ich versuche es noch einmal Sie hier zu erreichen. Sie schauen sicherlich nicht täglich hier hinein. Aber wenn Sie es tun, wäre es schön wenn Sie mir die bereits gestellte Frage beantworten könnten. Denn natürlich komme ich nicht weiter:-(

    certutil –dspublish –f FWCA01_FrankysWeb-Root-CA.crt Rootca

    Wofür steht das „FWCA01?

    DANKE!!!!

    Gysbert

  6. Hallo Frank,

    könntest Du mir die Frage beantworten, was ich dort einsetzen muss?
    Als Erstes wird das Zertifikat und die Sperrliste der Root-CA im Active Directory veröffentlicht. Am einfachsten ist das per CMD:

    certutil –dspublish –f *FWCA01_Savelkouls-ROOTCA.crt Rootca (*welchen Server?)
    certutil –dspublish –f Savelkouls-ROOTCA-CA.crl

    DANKE für die Beantwortung der augenscheinlich dumme Frage

    Gysbert

  7. Hallo Frank…sorry…die Antwort wurde ja am 23. gegeben.

    Führe ich CMD mit den beiden Befehlen jetzt auf den Root- oder SUB-Server aus?
    Ich bekomme immer die Antwort „Certutil: Das System kann die angegebene Datei nicht finden“
    Bei beiden…auf dem Root- als auch auf dem SUB-CA..
    Es ist „zum junge Hunde kriegen“…:-(

  8. Habe den Fehler entdeckt!
    Ich habe das „:certs“ übersehen. Nachdem ich auf meinen SUB in das Verzeichnis gegangen war…klappte es mit dem Zertifikat.
    Aber bei der Sperrliste kam die Meldung:
    „Certutil: -dspublish-Befehl ist fehlgeschlagen: 0x8007202b (WIN32: 8235 ERROR_DS_REFERRAL
    Certutil: Eine Referenzauswertung wurde vom Server zurückgesendet“

    Was kann ich hier machen?
    DANKE!!!!!!!!

  9. Guten Abend Frank,

    ich weiß welche Fehler ich gemacht hatte. Aber jetzt komme ich einfach nicht weiter, obwohl ich glaube es richtig zu machen. In CMD auf dem SUB-CA und aus dem „certs-Verzeichnis mit dem Zertifikat und der Sperrliste, gebe ich alles entsprechend ein. Ich bekomme sofort die Info:
    Die Konfigurationsinformationen konnten vom Domänencontroller nicht gelesen werden. Der Computer ist entweder nicht verfügbar, oder der Zugriff wurde verweigert.

    Könntest Du mir einen Tip geben?
    Danke
    Gysbert

  10. Bitte noch einmal um Hilfe…:-)
    Hallo Frank,
    ich habe meine Fehler meist ja selbst bemerkt…stoße aber jetzt wieder auf einen, von dem Du schreibst, dass er behoben sei. Ich bekomme beim Veröffentlichen der Sperrliste (die des Zertifikates war erfolgreich) die Meldung:
    CertUtil: -dspublish-Befehl ist fehlgeschlagen: 0x8007202b (WIN32: 8235 ERROR_DS_REFERRAL)
    CertUtil: Eine Referenzauswertung wurde vom Server zurückgesendet.

    Was mache ich falsch…oder was muss ich ändern? Bitte nur um eine KURZE Info
    DANKE
    Gysbert
    PS: Mein Versuch eine neue Sperrliste in der Zertifizierungsstelle zu veröffentlichen (wie Bjane es schrieb), endet mit der Fehlermeldung, dass der RPC-Server nicht in Wartestellung sei (RPC_S_NOT_LISTENING)

  11. Guten Morgen Frank,

    ich verstehe einfach nicht, warum Sie/Du mir nicht meine Frage beantworten? Sie geben hier in Ihrem Tutorial doch die Möglichkeit Fragen zu hinterlassen. Ich habe, obwohl alles Punkt für Punkt nachvollzogen wurde, immer noch dieses Problem:
    „Eine Referenzauswertung wurde vom Server zurückgesendet“.
    BITTE HELFEN SIE MIR DOCH HIER…DANN KOMME ICH ENDLICH WEITER….
    Danke dafür
    Gysbert Savelkouls

  12. Guten Morgen Frank,

    es mag Deiner Bereitschaft mir zu helfen nicht förderlich sein…aber ich verstehe nicht, warum EINE KURZE ERKLÄRENDE HILFE…Du mir nicht gewährst.

    Lass mich doch nicht so viel bitten und im Regen stehen

    Gysbert

  13. Hallo Gysbert,

    der Publish der .CRL-Datei schlägt fehl, da darin der Pfad zur Domäne fehlt.
    Sie haben höchstwahrscheinlich aus dem ersten Teil des Tuturials sicher das Script zur Konfiguraion der RootCA in eine .BAT-Datei kopiert und angepasst. Allerdings fehlt dort ein Befehl.

    Fügen Sie in Ihrer .BAT-Datei unter der Zeile:

    certutil -setreg CA\DSConfigDN „CN=Configuration,DC=savelkouls,DC=net“

    die Zeile ein:

    certutil -setreg CA\DSDomainDN „DC=savelkouls,DC=net“

    Das geht allerdings nur wenn Sie nocheinmal von vorne anfangen würden.
    Wollen Sie allerdings nur den Fehler beheben und weitermachen gehen Sie wie folgt vor:

    1. Löschen Sie auf der RootCA in „C:\Windows\System32\Certsrv\CertEnroll“ die .CRL-Datei
    2. Geben Sie die Befehle ein:

    certutil -setreg CA\DSDomainDN „DC=savelkouls,DC=net“
    net stop certsvc
    net start certsvc

    3. Starten Sie die Zertifizierungsstelle -> Rechte Maustaste auf „Gesperrte Zertifikate“ -> Veröffentlichen -> Neue Sperrliste -> OK
    4. Kopieren Sie die .CRL-Datei aus „C:\Windows\System32\Certsrv\CertEnroll“ und ersetzen die alte .CRL-Datei (die mit dem Referral-Fehler) auf der SubCA
    5. Starten Sie, wie im Tutorial wieder den dspuplish und nun sollte es gehen

    Quelle: https://technet.microsoft.com/en-us/library/cc737740%28WS.10%29.aspx

    PS: An den Zeichen „%%1“ aus dem RootCA-Konfigurationsskript kann man klar erkennen, dass es sich bei „FWCA01“ um den Computernamen der RootCA handelt.

    Ich hoffe ich konnte helfen. Ich hatte denselben Fehler. Nach kurzer Suche bin ich auf den Link oben gestoßen und damit wurde er behoben.

    Grüße
    A.

  14. -dspublish-befehl ist fehlgeschlagen: 0x80072ee5 (INet: 12005 ERROR_INTERNET_INVALID_URL)
    certutil: die URL ist ungültig…

    habe eigentlich alles gemacht wie beschrieben, die HTTP Adresse aus dem bat genommen,
    nach dem neuerstellen der sperrliste kommt der Fehler oben,hmpf… :-/

  15. Mahlzeit, also ich habe alles wunderbar hinbekommen, kann nur keine neuen Zertifikate „Exchange“ einreichen. Ich bekomme folgende Fehlermeldung auf der SubCA:

    „Die Anforderung enthält keine Zertifikatsvorlageninformationen.
    0x80094801 (-2146875391 CERTSRV_E_NO_ERT_TYPE)
    Verweigert von Richtlinenmodul 0x80094801, Die Anforderung enthält weder die Erweiterung für die Zertifikatsvorlage noch das Anforderungsattribut „CertificateTemplate“.

    Sobald ich es also versuche, landen meine Versuche im „ordner“ Fehlgeschlagene Anforderungen.

    Was mach ich wo falsch? Ich habe das Template Webserver in den Zertifikatsvorlagen, aber auch die Webseite localhost/certsrv sagt, keine Vorlage!.

    Mfg

  16. Hallo Franky,

    ich habe jetzt die SUBCA installiert. Es sind aber doch folgende Vorlagen mit installiert worden.

    Verzeichnis-E-Mail-Replikation
    Domänencontrollerauthentifizierung
    Kerberos-Authentifizierung
    EFS-Wiederherstellungs-Agent
    Basis-EFS
    Domänencontroller
    Webserver
    Computer
    Benutzer
    Untergeordnete Zertifizierungsstelle
    Administrator

    Kann ich die jetzt Problemlos löschen ?

    Gruß Chris

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.