Zertifikate - Windows Zertifizierungsstelle - Linux Web-Server-Vorlage

Zertifikate - Windows Zertifizierungsstelle - Linux Web-Server-Vorlage



Die Microsoft Zertifizierungsstelle ist hilfreich für das Ausstellen von Intranet-Zertifikaten.
Zertifikate vom Type Intranet sind in der Regel für eine Domain welche im Microsoft AD angelegt wird und enden mit .local
Beispiel:      meineDomain.local
Der Administrator würde sich in dem Fall mit dem Anmeldenamen "Administrator@meineDomain.local" und seinem Passwort anmelden.
Die Microsoft Zertifizierungsstelle ist bestens geeignet um für Computer/Server welche im AD registriert sind Zertifikate auszustellen.
Was ist aber, wenn eine Web-Server unter Linux mit speziellen Diensten ein Zertifikat benötigt?

Wir haben dies für einen NGINX-Webserver simuliert der Zertifikate im PEM-Format und eine Schlüsseldatei benötigt.
Dazu müssen wir eine Vorlage erzeugen, welche den export des privaten Schlüssels erlaubt.

  1. Erstellen einer neuen Vorlage in der Zertifizierungsstelle
    1. Server-Manager - Tools - Zertifizierungsstelle - Zertifikatsvorlagen - "Verwalten"
      1. Webserver-Vorlage duplizieren

      2. Allgemein
        1. Festlegen des Namens der Vorlage und Gültigkeitszeitraum ausgestellter Zertifikate

      3. Anforderungsverarbeitung
        1. Exportieren von privatem Schlüssel zulassen

    2. Die soeben erstellte Vorlage muss jetzt noch in der Zertifizierungsstelle eingebunden werden
      1. Server-Manager - Tools - Zertifizierungsstelle - Zertifikatsvorlagen - "Neu" - "Auszustellende Zertifikatsvorlage"


  2. Erzeugen eines Zertifikats-Anforderung mit der Microsoft Management-Console
    1. Ausführen mmc -> Datei - Snap-In hinzufügen/entfernen - Zertifikate - "Computerkonto" "Lokalem Computer"
      1. Im Bereich Eigene Zertifikate "Alle Aufgaben" - "Erweiterte Vorgänge" - "Benutzerdefinierte Anforderung erstellen"
      2. Im Fenster "Zertifikatregistrierungsrichtlinie auswählen" folgende Vorgaben beibehalten



        1. In den Eigenschaften wird das Zertifikat definiert

          1. Anstragsteller = Allgemeiner Name z.B. webserver.meineDomain.local 
          2. Alternativer Name = DNS z.B. webserver.meineDomain.local
          3. Im Reiter Allgemein kann noch ein Name für das Zertifikat vergeben werden.
          4. Die eingetragenen Werte mit Hinzufügen bestätigen und mit OK die Zertifikatserstellung Fortsetzen
        2. Speichern der Anforderung im Dateisystem

  3. Erzeugen des Zertifikates mit der Zertifizierungsstelle
    1. Server-Manager - Tools - Zertifizierungsstelle - Alle Aufgaben - "Neue Anforderung einreichen..."
      1. Die soeben erstelle Anforderung "webserver.meineDomain.local.req" wird geöffnet und in der Zertifizierungstelle verarbeitet anschl. erscheint der Speicherdialog für das erstelle Zertifikat.
  4. Importieren und weiterverarbeiten des Erzeugten Zertifikates
    1. Ausführen mmc -> Datei - Snap-In hinzufügen/entfernen - Zertifikate - "Computerkonto" "Lokalem Computer"
      1. Im Bereich Eigene Zertifikate "Alle Aufgaben" - "Importieren"
      2. Das erstellte Zertifikat importieren und es erschein anschl. im Bereich "Eigene Zertifikate" - "Zertifikate"

      3. Von hier kann das Zertifikat per Export für Linux vorbereitet werden
        1. Export als PFX-Datei 
          1. Zertifikat markieren - "Alle Aufgaben" - "Exportieren"
            1. Export mit privatem Schlüssel!


            2. Anschließend die *.pfx Datei in einem beliebigen Pfad speichern

  5. Weiterverarbeiten der Datei auf dem Linux-Server
    1. Die erzeugte pfx-Datei inkl. privatem Schlüssel auf den Linux-Server kopieren und mit openssl weiterverarbeiten
      1. Erzeugen einer separaten Schlüssel und Zertifikatsdatei z.B. PEM für NGINX
        1. Extrahieren der Schlüsseldatei
          1. Bei diesem Vorgang wird das Passwort des Zertifikates abgefragt und es muss ein neues vergeben werden
            openssl pkcs12 -in webserver.meineDomain.local.pfx -nocerts - webserver.meineDomain.local.key.pem
          2. Entfernen des Passwortes aus der Schlüsseldatei
            openssl rsa -in webserver.meineDomain.local.key.pem -out webserver.meineDomain.local.key
        2. Extrahieren des Zertifikates
          1. Bei diesem Vorgang wird das Passwort des Zertifikates abgefragt
            openssl pkcs12 -in webserver.meineDomain.local.pfx -clcerts -nokeys -out webserver.meineDomain.local.pem
      2. Diese Dateien können jetzt im NGINX verwendet werden, das Zertifikat wird gegen die Zertifizierungstelle verifiziert und als gültig ausgewiesen.