Installation und Konfiguration einer zweistufigen PKI unter Windows Server 2012 R2

Heut mal ein etwas längere Blog. Es geht darum eine Zweistufige CA
„Certificate Authority“ zu installieren und zu konfigurieren. Die nachfolgende Punkte (Backup der CA, Key Recovery Agent, Sperrlisten usw.) habe ich nicht mit berücksichtigt, da es den Rahmen des Blogs sprengen würde. 😉
Hier liegt der Focus auf dem LAB Betrieb. Für eine produktive Umgebung ist diese Anleitung nicht geeignet. ❗

Der Artikel ist sehr lang geworden, vielleicht sollten Sie sich erst einen Kaffee holen bevor Sie starten 😉

Vorrausetzungen

1. Eine lauffähige Domäne (Windows Server 2012 R2)
Siehe alten Blog sollte so ähnlich auch für Windows Server 2012 R2 sein
2. Windows Server 2012 R2 für die Root CA (Mitglied der Domain)
3. Windows Server 2012 R2 für die Sub CA (Mitglied der Domain)
4. Auf allen System ist die Windows Firewall deaktiviert
5. Erstellen Sie ein User „pkiadm“ in der Domäne und fügen diesen user den folgenden Gruppen hinzu „Domain Admins“ und „Enterprise Admins“
6. Windows Server 2012 R2 mit installiertem IIS zum testen. Für dieses System werden wir später ein SSL Zertifikat ausstellen.

Bevor wir anfangen, möchte ich drauf hinweisen, dass die Anleitung nicht für einen Produktivbetrieb genutzt werden sollte. Der Einsatz erfolgt auf eigene Gefahr, ich übernehme keine Haftung für Schäden!

Installation und Konfiguration der Root CA (Offline CA)

1. Melden Sie sich mit dem „pkiadm“ an die RootCA an.

2. Starten Sie den Server Manger und installieren Sie die Rolle
„Active Directory Certificate Services„

install_MS_CA_001

3.  Fahren Sie mit „Next“ fort und bei dem Punkt Features selektieren Sie „nichts“

4. Unter dem Punkt „AD CS / Role Services“ selektieren Sie
„Certifications Authority“ und fahren mit „Next“ fort (siehe Screenshot)

install_MS_CA_002

5. Klicken Sie auf „Install“ um mit der Installation zu beginnen.

install_MS_CA_003

6.  Klicken Sie auf „Close“ um die Installation fertigzustellen.

install_MS_CA_004

7.  Starten Sie aus dem „Server Manager“ die „Post-deployment Configuration“ um die CA zu konfigurieren.

install_MS_CA_005

8. Achten Sie drauf, dass Sie unter Credentials „Domain\pkiadm“ eingegeben haben. Fahren Sie mit „Next“ fort.

install_MS_CA_006

9. Selektieren Sie „Certification Authhority“ und klicken auf „Next“

install_MS_CA_007

10. Da wir ja als erstes die Root CA installieren klicken Sie auf „Standalone CA“ und auf „Next“

install_MS_CA_008

11. Selektieren Sie  „Root CA“ und klicken auf „Next“

install_MS_CA_009

12. Selektieren Sie „Create a new private key“ und fahren mit „Next“ fort

install_MS_CA_010

13. Selektieren Sie die nachfolgenden Optionen aus dem Screenshot. Sie sollten „SHA1“ nicht mehr benutzten, da Microsoft diese aus Sicherheitsaspekten in Zukunft nicht mehr unterstützen wird. Fahren Sie mit „Next“ fort

install_MS_CA_011

14. Fahren Sie mit „Next“ fort

install_MS_CA_012

15. Ich habe mich für eine Dauer von 20 Jahren entschieden. Hier steht es ihnen frei welche Dauer ihr Certificat für die Root CA haben soll

install_MS_CA_013

16. Die Pfade lassen ich wie gehabt stehen. Durchaus kann es Gründe geben diese abzuändern, aber in der LAB Installation geben wir uns mal mit dem Standart zufrieden und fahren mit „Next“ fort

install_MS_CA_014

17. Starten Sie die Konfiguration mit klick auf „Configure“

install_MS_CA_015

18. Die Konfiguration ist erfolgreich abgeschlossen.

install_MS_CA_016

19. Starten Sie die „Certification Authority“

install_MS_CA_017

20. Die CA sollte in der MMC ein „grünen Häckchen“ anzeigen.

install_MS_CA_018

21. Im nächsten Step konfigurieren wir CRL’s
Klicken Sie auf Properties (siehe Screenshot)

install_MS_CA_019

22. Wechseln Sie auf den Karteireite „Extensions“ und fügen Sie eine neue CRL hinzu http://subCA.medic-daniel.local/certdata/<CaName><CRLNameSuffix><DeltaCRLAllowed.crl>.crl

install_MS_CA_020

23. Geben Sie die URL ein.
Achten Sie darauf, dass Sie „SubCa.medic-daniel.local“ durch ihren Server FQDN ersetzten. Klicken Sie auf „Apply“

install_MS_CA_021

24. Die nachfolgende Meldung mit „Yes“ bestätigen

install_MS_CA_022

25. Selektieren Sie nun im selben Karteireiter die AIA Extention und fügen die URL via ADD hinzu
http://subCA.medic-daniel.local/certdata/<ServerDNSName><CaName><CertificateName>.crl

install_MS_CA_023

26. Setzten Sie das „Häckchen“ wie im Screenshot und bestätigen mit „Apply“ auch hier die nachfolgende Meldung mit „Yes“ bestätigen.

install_MS_CA_024

27. Nur publizieren wir die CRL.
Gehen Sie wie im Screenshot vor.

install_MS_CA_025

28. Bestätigen Sie mit „Ok“

install_MS_CA_026

29. Als nächste muss das Root Zertifikat exportiert werden, dieses muss später in der SubCA importiert werden. Starten Sie die MMC und öffnen das SnapIn „Certificates“ und verbinden sich mit dem Computer Store

install_MS_CA_027

30. Folgen Sie den Wizard und speichern das Zertifikat lokal ab. Denken Sie daran, dass es später benötigt wird. Folgende Sie den Screenshots

install_MS_CA_028

install_MS_CA_029

install_MS_CA_030

install_MS_CA_031

install_MS_CA_032

31. Die Root CA ist nun fertig installiert und konfiguriert.

Installation und Konfiguration der SubCA

32. Nun installieren wir das Root Zertifikat der RootCA auf die SubCA.
Verbinden Sie sich via RDP mit der SUB CA. Kopieren Sie sich das File auf die SubCA und klicken doppelt auf das exportierte Zertifikat der RootCA.
Klicken Sie auf „Install Certificate“ und folgende den Screenshots

install_MS_CA_033

install_MS_CA_034

install_MS_CA_035

install_MS_CA_036

install_MS_CA_037

33. Starten Sie den Server Manager und fügen die Rolle
„Active Directory Certificate Services„ hinzu. Fahren sie mit „Next“ fort

install_MS_CA_038

34. Selektieren Sie nichts bei den „Features“ und fahren mit „Next“ fort

install_MS_CA_039

35. Klicken Sie auf „Next“

install_MS_CA_040

36. Selektieren Sie die Optionen gemäß nachfolgendem Screenshot.

install_MS_CA_041

37. Bestätigen Sie die nachfolgenden Screenshots mit „Next“

install_MS_CA_042

install_MS_CA_043

38. Klicken Sie auf „Install“ um die CA zu installieren

install_MS_CA_044

39. Klicken Sie auf „Close“  um die CA Installation abzuschließen.

install_MS_CA_045

40. In nächsten Schritt geht es darum die CA zu konfigurieren.
Starten Sie aus dem „Server Manager“ die „Post-deployment Configuration“
um die CA zu konfigurieren.

install_MS_CA_046

41. Achten Sie darauf, dass Sie auch hier ihren PKI Administrator eintragen.
Fahren Sie mit „Next“ fort.

install_MS_CA_047

42. Folgen Sie den Screenshot und fahren mit „Next“ fort

install_MS_CA_048

43. Da wir nun die SubCA installieren wollen, selektieren Sie „Enterprise CA“ und fahren Sie gemäß den Screenshots fort.

install_MS_CA_049

install_MS_CA_050

install_MS_CA_051

install_MS_CA_052

install_MS_CA_053

install_MS_CA_054

install_MS_CA_055

44. Starten Sie das Konfigurieren der CA durch den Button „Configure“

install_MS_CA_056

45. Die CA ist nun konfiguriert, bestätigen Sie mit „Close“

install_MS_CA_057

46. Nun müssen wir für die SubCA die Zertifikatsanfordrung auf der RootCA bestätigen. Verbinden Sie sich via RDP mit der RootCA und betätigen Sie die Zertifikatsanfrage in der Console. (siehe Screenshot)

install_MS_CA_058

47. Nun muss das ausgestellte Zertifikat noch exportiert werden und in der SubCA importiert werden. Klicken Sie hierzu auf „Issued Certificates“ und selektieren dann das Zertifikat. Öffnen Sie das Zertifikat aus dem Kontextmenü mit „Open“

install_MS_CA_059

48. Klicken Sie auf dem Karteireiter  „Details“ und dann auf „Copy to File“

install_MS_CA_60

49. Folgen Sie den Screenshots

install_MS_CA_61

install_MS_CA_62

install_MS_CA_63

install_MS_CA_64

install_MS_CA_65

50. Installieren Sie nun das exportierte Zertifikate auf der SubCA.
Verbinden Sie sich via RDP mit der SubCA und starten die
„Certification Authority Console“.
Klicken Sie auf „Install CA Certificate“ und geben den Pfad zum exportierten Zertifikat an.

install_MS_CA_66

51. Nach dem Installieren des Zertifikates starten Sie die SubCA

install_MS_CA_67


Bereitstellung von Zertifikaten via Templates

Die Root und die Sub CA sind nun installiert und konfiguriert. Als nächstes wollen wir für einen Web Server auf Basis des Internet Information Servers (IIS) ein Webserver Zertifikat (SSL) ausstellen. Hierzu sind einige Schritte notwendig die ich in den nachfolgende Schritten beschreiben werde. Bitte haben Sie Verständnis, dass hier eine ausführliche Anleitung den Rahmen sprengen würde.

1. Verbinden Sie sich via RDP mit der Sub CA und starten die „Certification Authority Console“

2. Klicken Sie mit einem „rechten“ Mausklick auf „Certificate Template“ und selektieren „Manage“ aus

install_MS_CA_68

3. Die „Certificate Template Console“ öffnet sich. Klicken Sie mit der „rechte“ Maustaste auf das Web Server Template und selektieren „Duplicate“ siehe Screenshot

install_MS_CA_69

4. Dem soeben dupliziertem Template vergeben wir nun einen Namen. In meinem Fall habe ich mich für „MyWebServerCerts“ entschieden. Hierzu klicken Sie auf den Karteireiter „General“ und tragen unter „Template Display Name“ den gewünschten Namen ein.

install_MS_CA_70

5. Wechseln Sie nun auf dem Karteireiter „Request Handling“ und aktivieren
„Allow private key to be exported“ diese ist zwar nicht zwingend notwendig, aber so hat man die Möglichkeit das Zertifikat später am Server zu exportieren und ggf. wieder auf einem andern Server zu importieren. Würde bei einem Hardwaretausch zutreffen! 😉

install_MS_CA_71

6. Wechseln Sie nun auf den Karteireiter „Security“ und geben dort an, welche User/Gruppe das WebServer Zertifikat beantragen darf. In meinem Fall gebe ich hier den User „ServerAdmin“ der auch lokaler Admin auf dem WebServer ist. Geben Sie die Berechtigungen wie im Screenshot an und bestätigen mit „Apply“ und schließen danach mit einem Klick auf „OK“ ab. Schließen Sie die „Certificate Template Console“

install_MS_CA_72

7. Das neue Template wurde nun angelegt, nun muss dieses aber noch über die „Certification Authority Console“ publiziert werden. Hierzu klicken Sie in der Console mit der „rechten“ Maustaste auf „Certificate Templates“ –> „New“ und selektieren dann „Certificate Template to Issue“

install_MS_CA_73

8. Selektieren Sie das Template in meinem Fall „MyWebServerCerts“ und klicken auf „OK“

install_MS_CA_74

Zertifikate im Internet Information Server IIS anfordern und einbinden

1. Für diese Beispiel sollte der Server Mitglied der Domäne sein.
Öffnen Sie den IIS Manager. Klicken Sie auf „Server Certificates“ siehe Screenshot

install_MS_CA_75

2. Klicken Sie nun in der „Action Pane“ auf „Create Certificate Request“

install_MS_CA_76

3. Tragen Sie unter „Common Name“ den finalen FQDN ein. Das ist der DNS Name unter dem ihr WebServer später erreichbar ist. Denken Sie daran, dass der DNS Name noch im DNS eingetragen werden muss. Folgend Sie den Screenshots

install_MS_CA_77

install_MS_CA_78

4. Geben Sie nun den Pfad an wo Ihr CSR Datei abgelegt werden soll.
Klicken Sie auf „Finish“

install_MS_CA_79

5. Öffnen Sie nun die CSR Datei mit Notepad und kopieren den Inhalt. Achten Sie darauf, dass Sie nur den Inhalt kopieren inklusive „— Begin …….. und ——-End“

install_MS_CA_80

6. Staren Sie nun auf dem Webserver den „Internet Explorer“ und geben die URL zu ihrer CA ein. In meinem Beispiel: http://subca.medic-daniel.local/certsrv
evtl. werden Sie hier nach Benutzername/Passwort gefragt, nutzen Sie hier den User der das Recht im Zertifikat Template erhalten hat. In meinem Fall ist das der ServerAdmin. Klicken Sie nun auf „Request a certificate“ und folgende den weitern Screenshots.

install_MS_CA_81

install_MS_CA_82

install_MS_CA_83

7. Kopieren Sie nun den Inhalt der CSR in das Feld „Base-64-encoded…..“ und selektieren Sie unter „Certificate Template“ das WebServer Template, welches Sie im Vorfeld bereits angelegt haben. Fahren Sie mit „Submit“ fort

install_MS_CA_84

8. Klicken Sie auf „Download certificate“ um das Zertifikat zu installieren. Folgen Sie den weitern Screenshots.

install_MS_CA_85

install_MS_CA_86

install_MS_CA_87

install_MS_CA_88

install_MS_CA_89

install_MS_CA_90

install_MS_CA_91

9. Sie sollten nun in der IIS Console das Zertifikat sehen
(ggf. mit F5 die Ansicht aktualisieren) siehe Screenshot

install_MS_CA_92

10. Per Default hört der Webserver auf „http (Port 80)“ und wir wollen diese ja nun auf „https (Port 443)“ umstellen. Diese geschieht über die „Bindings“. 
Wechseln Sie in der Baumstruktur der IIS Console auf die „Default Web Site“ klicken Sie in der „Action Pane“ auf „Bindings“

install_MS_CA_93

11. Klicken Sie im nachfolgendem Dialog auf „Add“

install_MS_CA_94

12. Tätigen Sie die Einstellungen wie im nachfolgenden Screenshot.

install_MS_CA_95

12. Bestätigen Sie mit „Close“

install_MS_CA_96

13. Das Zertifikat ist nun eingebunden. Zum Testen starten Sie ein Webbrowser zum Beispiel vom Domain Controller und rufen die „IIS Wilkommens Seite“ auf.  Dazu öffnen Sie den Internet Explorer und geben die URL ein.
In meinem Fall https://myurl.medic-daniel.local

install_MS_CA_97

Ich hoffe, ich konnte Ihnen einen kleinen Einblick geben. Sollten Sie Fragen haben, so scheuen Sie nicht, mich zu kontaktieren. Nutzen Sie hier die “Kommentar Funktion” des Blogs oder wenn es Ihnen lieber ist via E-Mail.

Weiter Blogs folgen in den nächsten Tagen. Ich würde mich sehr freuen, wenn Sie wieder vorbeischauen.

4 Gedanken zu „Installation und Konfiguration einer zweistufigen PKI unter Windows Server 2012 R2

  1. Sascha Jokiel

    Herzlichen Dank für diesen tollen Artikel. Er hat mir den Einstieg in das Thema Zertifikate wirklich erleichtert.

  2. Igwemo Pielczyk

    Es wäre aus Sicherheitssicht besser wenn die RootCA kein Domain member ist, sondern ein Laptop/VM die nie eine Netzwerkverbindung hat und in einem Safe liegt. So kann man einen Diebstahl des RootCA Zertifikates ausschliessen.

    1. Daniel Medic Beitragsautor

      Hallo und Danke für deinen Beitrag.
      Es gibt da unterschiedliche Ansätze. Es gibt Unternehmen, die legen sich die VM weg und andere lassen die Offline. Am sichersten die Safe Methode ☺

  3. Peter Mönch

    Auf die CApolicy.inf hätte ich noch hingewiesen.
    Vor allem LoadDefaultTemplates=0
    In Deiner Testumgebung hast Du sonst viele Templates veröffentlicht die zwar genutzt werden aber die Du gar nicht benötigst. In Deinem Beispiel benötigst Du nur das Webserverzertifikatstemplate.

Schreibe einen Kommentar

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

fünf × 4 =