Windows Active Directory-Zertifikatsdienste (ADCS) mit PKI-Proxy

Dieses Dokument beschreibt die Konfiguration der Windows Active Directory-Zertifikatsdienste (ADCS) mit PKI Proxy und NetHSM.

Prerequisits

  • NetHSM

    • Provisioned

    • Administrative access

  • PKI Proxy server

    • Das NetHSM-PKCS#11-Modul wurde installiert und für die Verwendung mit dem NetHSM konfiguriert

  • CA-Server (Windows Server)

    • ADCS role installed, but not configured

    • PKI Proxy client tools installed

    • Client-Tools sind nicht erforderlich, wenn auf diesem Server auch der PKI-Proxy-Server läuft, da dieser die Client-Tools enthält.

    • Pynitrokey installed

Root CA Key and Certificate

In der folgenden Tabelle sind die wichtigsten Algorithmen und Schlüssellängen sowie die Hash-Algorithmen aufgeführt, die der Windows ADCS in Verbindung mit NetHSM verwenden kann.

Key Algorithm

Key Length

Hash Algorithm

RSA

1024

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512

2048

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512

4096

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512

ECDSA

P256

SHA1, SHA256, SHA385, SHA512

P384

SHA1, SHA256, SHA385, SHA512

P521

SHA1, SHA256, SHA385, SHA512

Wichtig

Bitte beachten Sie die bewährten Vorgehensweisen bei der Auswahl eines sicheren Schlüsselalgorithmus, einer geeigneten Schlüssellänge und eines Hash-Algorithmus.

Ein Schlüssel und ein Zertifikat können entweder neu generiert oder aus einer bestehenden Umgebung migriert werden. Weitere Informationen zur Vorgehensweise in Ihrer konkreten Situation finden Sie in den folgenden Unterkapiteln.

Generate a new Root CA Key and Certificate on Windows

Mit der folgenden Anleitung werden ein neuer Schlüssel und ein neues Zertifikat für die Verwendung in einer „ “-Stammzertifizierungsstelle (Root CA) in ADCS erstellt.

Tipp

In der Regel ist es einfacher, einen Schlüssel und ein Zertifikat mit dem ADCS-Konfigurationsassistenten zu erstellen und anschließend den Anweisungen unter Migrate existing Key and Certificate zu folgen.

In diesem Fall wird eine Anforderungsvorlage verwendet, um einen Schlüssel mit expliziten CA-Erweiterungen zu generieren. Die konkreten Werte müssen an Ihre Umgebung angepasst werden.

Die Anfragevorlage muss in einer Datei mit dem Namen „ ` “ RootCA.inf` gespeichert werden und folgenden Inhalt haben.

Diese Vorlage generiert einen RSA-Schlüssel mit einer Schlüssellänge von 4096 Bit. Sie müssen <CA-NAME> durch den Namen Ihrer Zertifizierungsstelle ersetzen.

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=<CA-NAME>"
KeySpec = 1
KeyLength = 4096
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft Software Key Storage Provider"
ProviderType = 0
RequestType = Cert
KeyUsage = 0x86

[Extensions]
; Key Usage: keyCertSign (0x04) + cRLSign (0x02) => 0x06
2.5.29.15 = "{critical}86"

; Basic Constraints: CA = TRUE, path length optional
2.5.29.19 = "{critical}{text}CA=TRUE"

; CA Version (V0.0)
1.3.6.1.4.1.311.21.1 = "{hex}02 01 00"

[RequestAttributes]
; Empty for self-signed request

Generate the key and certificate from the certificate template.

certreq -new RootCA.inf RootCA.req

Das Zertifikat wurde dem lokalen Zertifikatsspeicher des Computers hinzugefügt. Exportieren Sie das Zertifikat in eine PFX-Datei und ersetzen Sie dabei <THUMBPRINT> durch den entsprechenden Wert aus der Ausgabe des vorherigen Befehls.

$password = Read-Host -AsSecureString "Password"
Export-PfxCertificate -Cert Cert:\LocalMachine\My\<THUMBPRINT> -FilePath RootCA.pfx -Password $password

Der Passwortwert wird zur Verschlüsselung des PKCS#12-Archivs (PFX-Datei) verwendet. Sie können mit dem Kapitel „ “ unter „NetHSM-Konfiguration“ fortfahren.

Migrate existing Key and Certificate

Um einen vorhandenen Schlüssel und ein vorhandenes Zertifikat zu migrieren, müssen diese aus dem Zertifikatsspeicher auf dem ADCS exportiert und das daraus resultierende Archiv in das NetHSM importiert werden.

Wichtig

Bevor Sie Änderungen an einer Zertifizierungsstelle in der Produktionsumgebung vornehmen, wird empfohlen, eine Sicherungskopie davon zu erstellen. Weitere Informationen finden Sie unter dieser Seite.

  1. Öffnen Sie certlm.msc.

  2. Navigieren Sie zu „ -Zertifikate – Lokaler Computer → Persönlich → Zertifikate“.

  3. Select the certificate in the list on the right.

  4. Navigieren Sie in der Menüleiste oben zu „ -Aktion“ → „Alle Aufgaben“ → „Exportieren…“. Dadurch wird der Assistent zum Exportieren von „ “-Zertifikaten gestartet.

  5. Confirm the introduction of the assistant with Next.

  6. Aktivieren Sie das Optionsfeld neben „ “ (Ja, den privaten Schlüssel exportieren) unter „ “ und bestätigen Sie mit „ “ (Weiter). Wählen Sie anschließend „ “ (Weiter). Wenn das Optionsfeld nicht verfügbar ist, ist der Schlüssel als nicht exportierbar gekennzeichnet. In diesem Fall ist diese Anleitung für den beabsichtigten Anwendungsfall nicht anwendbar.

  7. Fügen Sie nach Möglichkeit alle Zertifikate im Zertifizierungspfad ein

  8. Aktivieren Sie das Optionsfeld neben „ “ (Ja, den privaten Schlüssel exportieren), wählen Sie „ “ (Ja, den privaten Schlüssel exportieren) und bestätigen Sie mit „ “ (Ja, den privaten Schlüssel exportieren). Wählen Sie anschließend „ “ (Ja, den privaten Schlüssel exportieren).

  9. Aktivieren Sie das Optionsfeld neben „ -Datenaustausch – PKCS #12 (.PFX)“. Stellen Sie sicher, dass Sie die folgenden Optionen aktivieren:

    • Fügen Sie nach Möglichkeit alle Zertifikate im Zertifizierungspfad ein

    • Alle erweiterten Eigenschaften exportieren

    • Enable certificate privacy

    Confirm the selection with Next.

  10. Aktivieren Sie das Optionsfeld neben „ “ („Passwort“). Geben Sie ein Passwort in die Passwort-Eingabefelder ein. Wählen Sie aus der Dropdown-Liste neben „ Encryption“ („Verschlüsselung“) die Option „ “ („AES256-SHA256“) aus.

    Wichtig

    Das Verschlüsselungsverfahren AES256-SHA256 wird erst ab Windows Server 2019 und Windows 11 unterstützt. Für die Verwendung mit älteren Versionen behalten Sie die Standardeinstellung TripleDES-SHA1 bei.

    Confirm the selection with Next.

  11. Choose a storage location and file name and confirm with Next.

    Wichtig

    Der exportierte Schlüssel und das Zertifikat sollten an einem sicheren Ort aufbewahrt werden, auf den nur autorisierte Benutzer Zugriff haben.

  12. Confirm the export with Finish.

  13. Stellen Sie sicher, dass das Zertifikat in der Liste auf der rechten Seite weiterhin ausgewählt ist.

  14. Navigieren Sie in der Menüleiste oben zu „ -Aktion“ → „Alle Aufgaben“ → „ löschen“. Bestätigen Sie das Löschen des privaten Schlüssels und des Zertifikats mit „ Ja“.

Sie können mit dem Kapitel „ “ unter „NetHSM-Konfiguration“ fortfahren.

NetHSM Configuration

Der Schlüssel und das Zertifikat aus dem vorherigen Kapitel müssen in das NetHSM importiert werden. Mit dem Befehl „ nitropy“ können wir das PKCS#12-Archiv direkt in das NetHSM importieren.

Importieren Sie das PKCS#12-Archiv wie folgt und ersetzen Sie dabei <KEY-ID>, <MECHANISM> und <PKCS12-ARCHIVE> durch die entsprechenden Werte.

nitropy nethsm import-pkcs12 -k <KEY-ID> -m <MECHANISM> -p <password> <PKCS12-ARCHIVE>

Für RSA-Schlüssel muss der Mechanismus rsa_signature_pkcs1 lauten, und für ECDSA-Schlüssel ecdsa_signature.

Sie können nun überprüfen, ob das Zertifikat auf dem NetHSM verfügbar ist.

nitropy nethsm list-keys

Der Schlüssel wird mit der im vorherigen Befehl angegebenen Schlüssel-ID aufgelistet.

PKI Proxy Server Configuration

Auf dem PKI-Proxy-Server müssen Sie das soeben aus dem NetHSM hinzugefügte Zertifikat freigeben. Befolgen Sie dazu bitte die Schritte unter Publish Certificates from the NetHSM, um mehr zu erfahren.

Windows ADCS Configuration

PKI Proxy Client Tools Configuration

Im Folgenden stellen wir den Schlüssel und das Zertifikat im lokalen Zertifikatsspeicher des Windows-Rechners bereit.

  1. Open the PKI Proxy Certificate Manager.

  2. Click the Add… button.

  3. Füllen Sie die Pflichtfelder aus.

    • Standort, z. B. https://localhost:9266

    • Authentifizierung

    • User

    • Secret Key/Password/SPN

    • Certificate Store: LOCALMACHINE\My

    Confirm the configuration with the OK button. This will bring you back to the previous window.

  4. The list under Certificate Management in the PKI Proxy Certificate Manager should now show the just added certificate.

Sie können nun überprüfen, ob das Zertifikat im lokalen Zertifikatsspeicher des Computers vorhanden ist.

  1. Öffnen Sie das Dialogfeld „ **“ („ “), indem Sie entweder mit der rechten Maustaste auf das Windows- -Startmenü klicken und „ “ („ “) auswählen oder die Windows-Taste + R** auf Ihrer Tastatur drücken.

  2. Geben Sie im Dialogfeld „ “ unter „Ausführen“ ` certlm.msc` ein und bestätigen Sie die Eingabe mit der Taste Geben Sie über die Tastatur ein oder klicken Sie auf OK.

  3. Navigieren Sie im angezeigten Zertifikatsmanager in der Baumstruktur auf der linken Seite zu „ -Zertifikate – Lokaler Computer → Persönlich → Zertifikate “.

  4. The published certificate is now listed on the right.

Windows ADCS Configuration

  1. Öffnen Sie den „ -Server-Manager“ über das Startmenü **** oder durch Drücken der Windows-Taste + R **** auf Ihrer Tastatur und geben Sie ServerManager.exe ein.

  2. Klicken Sie in der Menüleiste oben rechts auf das Flaggensymbol und wählen Sie aus den Benachrichtigungen nach der Bereitstellung die Option „ : Konfigurieren der Active Directory-Zertifikatsdienste auf dem Zielserver “ aus. Dadurch wird der Assistent „ : AD CS-Konfiguration “ gestartet.

  3. In the wizard, set the settings below according to the stage.

    • Role Services

      Check the radio button next to Certification Authority.

    • Setup Type

      Wählen Sie je nach Ihrer Umgebung entweder „ “ (Enterprise-Zertifizierungsstelle) oder „ “ (Standalone-Zertifizierungsstelle) aus.

    • CA Type

      Wählen Sie „ “ als Stammzertifizierungsstelle aus

    • Private Key

      Aktivieren Sie das Optionsfeld neben „ “ („Vorhandenen privaten Schlüssel verwenden“). Aktivieren Sie unter dieser Option das Optionsfeld neben „ “ („Zertifikat auswählen und die zugehörigen privaten Schlüssel verwenden“).

      • Existing Certificate

        Wählen Sie in der Liste der „ “-Zertifikate unter das gewünschte Zertifikat aus. Stellen Sie sicher, dass das Kontrollkästchen neben „ “ (Administratorinteraktion zulassen, wenn die Zertifizierungsstelle auf den privaten Schlüssel zugreift) nicht aktiviert ist. Dies ist nicht erforderlich, da der PKI-Proxy-KSP keine zusätzliche Authentifizierung für die Verwendung des privaten Schlüssels benötigt.

  4. Nachdem der Konfigurationsassistent abgeschlossen ist, öffnen Sie die Zertifizierungsstelle „ über das Startmenü **** oder indem Sie die Windows-Taste + R **** auf Ihrer Tastatur drücken und certsrv.msc eingeben. Sie können überprüfen, ob der Zertifizierungsstellendienst korrekt gestartet wurde, wenn neben dem Namen der Zertifizierungsstelle ein grüner Punkt mit einem weißen Häkchen angezeigt wird.

Wichtig

Die Verfügbarkeit der Zertifizierungsstelle hängt von der Verfügbarkeit des privaten Schlüssels und des Zertifikats ab. Sind diese nicht verfügbar, kann es vorkommen, dass der Dienst der Zertifizierungsstelle nicht gestartet werden kann oder unerwartet beendet wird. Überprüfen Sie im Falle eines Fehlers das Windows-Ereignisprotokoll unter „ “ ( ), um weitere Informationen zu erhalten.