Server 2008/2012: Install PKI (Part 2)

In part 1 the root CA was installed, which is to be taken offline (i.e. shut down) later. But now we will first take care of the sub-CA that is to be integrated into Active Directory. This is the second part of the 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

After restarting the server or "gpupdate /force", the root CA certificate should be visible in the Trusted Root Certification Authorities store

image

As with the root CA, the CAPolicy.inf is first stored in the Windows directory for the sub-CA. The CAPolicy has the following content

[Version]
Signature = "$Windows NT$"
[certsrv_server]
LoadDefaultTemplates = 0
RenewalKeyLength = 2048
RenewalValidityPeriodUnits = 5
RenewalValidityPeriod = years

Once the CAPolicy.inf is in the Windows directory, the Sub-CA can be installed:

image

The type of CA this time is "Company" and not "Independent" as with the Root CA

image

As this is a sub-CA in this case, "Subordinate certification authority" must be selected

image

The wizard should create a new private key

image

Here it is important which settings are selected, I use SHA256 and 4096-bit key length. This should last for a while.

image

Define the name of the SubCA:

image

And save the certificate request

image

The rest is again "Next..Next..Finish"... This warning at the end of the installation is normal, as there is no valid certificate yet:

image

Once the installation is complete, the certificate request must be copied to the root CA. The request can be found under C:\, in my case the request has the name "DC1.frankysweb.local_FrankysWeb-Sub-CA.req"

image

The request can be submitted by right-clicking in the Root CA destructing authority console and selecting the request file.

image

There is now a new entry under "Pending requests"

image

This request can be approved by clicking on "Issue" under "All tasks".

image

The certificate of the sub-CA can now be found under "Issued certificates". It can be displayed with a double-click.

image

It can be copied to a file (SubCA.cer) under the "Details" tab. The file can now be copied to the Sub-CA, it will be needed later.

Now the SubCA is configured. This is again done with a batch file (Attention: Adjustments necessary, see below)

:: 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

The following adjustments are necessary depending on the environment:

Line 7: The Active Directory configuration partition must be specified here. My AD domain is frankysweb.local. Therefore it is "CN=Configuration,DC=frankysweb,DC=local" for me. The corresponding entry can be determined from a domain controller using ADSI-Edit:

image_thumb2

Line 27 and line 30: If you want to ensure that the revocation list can also be accessed by external clients (important for clients without a connection to the AD), you must specify a web server at the end of the line that can be accessed from the Internet. If you only need to serve AD members, you can remove the end of the line (not the whole line, just the one from "n2"). However, I recommend entering a valid URL, more on this later.

As soon as the necessary adjustments have been made, the batch file can be executed.

The certificate of the sub-CA can then be installed. To do this, right-click on the CA in the certification authority MMC of the sub-CA and then click on "All tasks" -> "Install certification authority certificate". The SubCA certificate (SubCA.cer) is then selected and installed:

image

Once the certificate has been installed, the CA can be started.

image

Now we have a sub-CA. CAPolicy.inf has determined that no standard templates should be published. The list of certificate templates is therefore empty:

image

This means that no computers will automatically request and be issued certificates unless a corresponding template is created. So users cannot simply use EFS encryption or Bitlocker unless we create a corresponding certificate template and allow users to do so. By configuring a PKI in this way, you eliminate many scenarios and retain control over what certificates are used for and for what purpose in the company. This is because the certificate can only be registered and used if the admin creates a corresponding template with a specific purpose for a specific user group. In the "Next...Next...Finish" installation of a PKI, every user can use encryption, but without corresponding key recovery agents, encrypted data cannot be decrypted if, for example, the user leaves the company or the private key is lost.

But we're not quite finished yet, because we still need to download the blacklists via http... (Part 3)

22 thoughts on “Server 2008/2012: PKI installieren (Teil 2)”

  1. 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

    Reply
  2. 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

    Reply
  3. -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… :-/

    Reply
  4. 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.

    Reply
  5. 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

    Reply
  6. 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

    Reply
  7. 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)

    Reply
  8. 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

    Reply
  9. 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!!!!!!!!

    Reply
  10. 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“…:-(

    Reply
  11. 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

    Reply
  12. 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

    Reply
  13. 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

    Reply
  14. 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.

    Reply
  15. 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.

    Reply
  16. 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.

    Reply

Leave a Comment