Einrichten einer PKI unter Windows Server 2008 R2

In diesem Artikel beschreibe ich die Implementierung einer Microsoft Windows Server 2008 R2 PKI für ein kleines Unternehmen mit einem Standort und einer einzelnen ActiveDirectory Gesamtstruktur.

1. Anforderungen an die PKI

Ich beschränke mich auf eine zweischichtige Zertifizierungsstellenhierarchie. Diese gewährleistet eine erneute Ausstellung der Zertifikate nach einer Kompromittierung der Schlüssel, ohne eine Neuinstallation der Gesamtstruktur.  Durch eine geschützte Offline Stammzertifizierungsstelle kann für die ausstellende Zertifizierungsstelle ein neues Zertifikat ausgestellt werden, sobald das alte aus irgendwelchen Gründen unbrauchbar wurde.

Diese ist geeignet für kleine Unternehmen, die keine weiteren Niederlassungen( über WAN angebunden) pflegen und nicht mehr als ein paar hundert Mitarbeiter beschäftigen. Die Zertifikatsdienste sind für dieses Unternehmen wichtig aber eine ständige Ausstellmöglichkeit nicht existenziell.

Genutzt werden sollen:

  • Webserver Zertifikate für SSL
  • Server Zertifikate für IPSec
  • Benutzer Zertifikate für VPN und EFS
  • Zertifikate für Dokument- und Codesignaturen

2. Entwerfen der PKI

Für die Stammzertifizierungsstelle nutzen wir einen Windows Server 2008 R2 Standard. Dieser wird die meiste Zeit offline bleiben und keine weiteren Dienste anbieten. Zudem ist der Server eigenständig und nicht teil der ActiveDirectory Gesamtstruktur.

Für die Richtlinien und ausstellende Zertifizierungsstelle wird ein Windows Server 2008 R2 Enterprise verwendet, da dieser neben den Standradmöglichkeiten zusätzlich auch die Wiederherstellung von Zertifikaten ermöglicht, was in der Standard Version nicht verfügbar ist. Dieser Server ist Teil der ActiveDirectory Gesamtstruktur aber kein Domaincontroller, da dies eine mögliche spätere Deinstallation erschweren würde. Dieser Server bekommt zusätzlich die Server Rolle Internetinformationsdienste für den Zertifizierungsdienst Webregistrierung.

PKI Umgebung mit 2 Stufen

Eigene OID

Um die eigene PKI zukunftsorientiert aufbauen zu können, benötigt man für jedes Unternehmen eine eigene OID (Object Identifier ). Dieser sollte einmalig auf der Welt sein, um auch eine Verbindung mit anderen Unternehmen eingehen zu können, ohne identische OIDs und damit eine fehlerhafte Zertifikatsstruktur zu erhalten.

Eine kostenlose Registrierung einer Private Enterprise Number (PEN ) ist bei der IANA möglich:

http://pen.iana.org/pen/PenApplication.page

Nach ein paar Tagen erhält man die Registrierung und wird in dem folgenden Verzeichnis aufgeführt:

http://www.iana.org/assignments/enterprise-numbers/enterprise-numbers

Die dort erhaltene PEN kann nun mit dem Präfix iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) kombiniert werden. Wenn Sie demnach die Nummer 123456 erhalten haben ist der generierte OID „1.3.6.1.4.1.123456“.

Name der Zertifizierungsstellen

Der Name der Zertifizierungsstelle wird später im Zertifikat angezeigt, daher sollte hier ein Name gewählt werden, der nicht zwingen die Struktur des netzwerks oder des Active Directory verrät. Für die Stammzertifizierungsstelle nutzen wir daher „Beispielfirma Corporate Root CA“. Der Name darf maximal 64 Zeichen enthalten.

3. Implementierten der PKI

3.1 Installieren der Offline Stammzertifizierungsstelle

Ein Windows Server 2008 R2 Standard wird soweit vorbereitet, dass sämtliche Sicherheitsupdates installiert sind und das System im Netzwerk unter einer festen IP erreichbar ist.

Die CAPolicy.inf

Eine genaue Übersicht über die einzelnen Bestandteile der CAPolicy.inf Datei habe ich im folgenden Blogbeitrag veröffentlicht, da der Umfang doch sehr groß ist.

Übersicht der CAPolicy.inf

In dieser CAPolicy.inf legen wir die Werte für die Schlüssellänge und den Ausstellungszeitraum für die Erneuerung von Zertifikaten fest. Die Deltasperrlisten werden deaktiviert. CDP und AIA Erweiterungen werden verhindert um die Überprüfung auf Sperrung der Zertifikate zu unterbinden. Diskrete Signaturen werden aktiviert.

Die CAPolicy.inf Datei wird in den Ordner %SystemRoot% kopiert, bevor die Installation begonnen werden kann.

Installation

  1. Im Server Manager wird über Rollen die Rolle Zertifizierungsstelle ausgewählt
  2. mit der Option Eigenständig und als Stammzertifizierungsstelle
  3. Ein neuer privater Schlüssel muss erstellt werden
  4. Als Kryptographiedienstanbieter wird die Voreinstellung „RSA#Microsoft Software Key Storgae Provider“ mit einer Schlüssellänge von 2048 und SHA1 als Hashalgorithmuss eingestellt
  5. Administratorinteraktion bei jedem Zugriff auf den Privaten Schlüssel zulassen dient der Absicherung der Zertifizierungsstelle. hierdurch muss jeder Zugriff aktiv mit einem Kennwort bestätigt werden.
  6. Der allgemeine Name der Zertifizierungsstelle lautet in diesem Fall Beispielfirma Corporate Root CA und der Suffix ist O=Beispielfirma,C=DE
  7. Das Zertifikat der Stammzertifizierungsstelle bekommt eine Gültigkeitsdauer von 20 Jahren
  8. Der Speicherort der Zertifikatsdatenbank und der Protokolldatei sollte auf einem separaten Laufwerk erfolgen z.B. D:\CertLog.

Nacharbeiten

Wir gehen davon aus, dass  eine Webseite www.firmenwebseite.de existiert, die ein virtuelles Verzeichnis cert hostet und die Clientcomputer Mitglied der AD Domäne beispielfirma.dom sind.

stammzertifikat           stammzertifikat2           sperrliste

3.2 Installation der Richtlinien- und ausstellenden Zertifizierungsstelle

Die CAPolicy.inf

Inzwischen haben wir die OID 1.3.6.1.4.1.123456 von der IANA erhalten und können diese für die Richtlinienveröffentlichung nutzen.

Vorarbeiten

Damit die ausstellende Zertifizierungsstelle der Stammzertifizierungsstelle vertraut, müssen die Zertifikate veröffentlicht werden. Dies kann an drei Orten erfolgen:

  • im Speicher des lokalen Computers
  • im Active Directory
  • im HTTP Verzeichnis aus den AIA und CDP-Erweiterungen

Bereitstellen des Zertifikats und der Sperrliste im lokalen Speicher

Bereitstellen im AD

Die Installation

  1. Im Server Manager installieren wir die zusätzliche Rolle Active Directory Zertifikatsdienste
  2. Wir wählen Zertifizierungsstelle und Webregistrierung
  3. Als Setuptyp wählen wir Unternehmen
  4. Als Zertifizierungstellentyp Untergeordnete Zertifizierungsstelle
  5. Privaten Schlüssel einrichten auf neuen Privaten Schlüssel erstellen
  6. RSA Microsoft Key Storage Provider mit 2048 Bit und SHA256
  7. Name der Zertifizierungsstelle Beispielfirma Issuing CA und als Suffix O=Beispielfirma,C=DE
  8. Zertifikat von übergeordneter ZS anfordern : Zertifikatsanforderung in Datei speichern und manuell an die übergeordnete Zertifizierungsstelle senden
  9. Zertifikatsdatenbank und das Protokoll speichern wir auf D:\CertLog
  10. Webserver IIS mit den Standard Rollendiensten
  11. Installationsauswahl bestätigen
  12. Die Anforderungsdatei muss nun zur Stammzertifizierungsstelle befördert werden
  13. In der Zertifizierungsstellenkonsole mit einem rechtsklick auf die Zertifizierungsstelle unter alle Aufgaben wählen wir Anforderungsdatei einreichen und wählen die Datei auf
  14. Nun klicken wir auf ausstehende Anforderungen und wählen die Zertifikatsanforderung
  15. Mit einem Rechtsklick und dann auf alle Aufgaben und dann aus Ausstellen
  16. Nun klicken wir auf Ausgestellte Zertifikate und öffnen das ausgestelte Zertifikat
  17. Unter Details kann man das Zertifikat im PKCS7 Format in eine Datei exportieren und wieder zur ausstellenden Zertifizierungsstelle übertragen
  18. In der Zertifizierungsstellenkonsole klicken wir auf weitere Aktionen dann auf alle Aufgaben und rufen Zertifizierungsstellenzertifikat einreichen auf
  19. dort wählen wir das neu ausgestellte Zertifikat aus

Nacharbeiten

Nun stehen die Zertifikatsdienste zur Verfügung. Was noch fehlt sind die Gruppenrichtlinien zum erstellen der Berechtigungen und zum verteilen der Zertifikate. Zudem fehlen noch Konfigurationen für den Schlüsselwiederherstellungsagenten, das werde ich in einem zukünftigen Beitrag genauer beschreiben.

 

 

2 Gedanken zu „Einrichten einer PKI unter Windows Server 2008 R2

  1. Thomas Frings

    Hallo und guten Tag,

    ein Lob für den guten Artikel.

    Ich habe eine Verständnisfrage für den Aufbau einer 2 Tier PKI:

    Darf die OID von IANA nur in der SUBCA definiert werden?
    Oder die gleiche OID in ROOTCA und SUBCA?

    Gruß

    1. tschneider Beitragsautor

      Hallo und vielen Dank,

      die OID betrifft nur die CPS Bereiche. Also die Bereiche die für die Öffentlichkeit bestimmt sind. Die Richtlinienzertifizierungsstelle ist hierfür der richtige Ort.
      Die OID sollte meiner Meinung nach nicht in der RootCA aufgeführt werden.

      Viele Grüße.

      Tobias Schneider

Kommentare sind geschlossen.