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.
Öffnen Sie
certlm.msc.Navigieren Sie zu „ -Zertifikate – Lokaler Computer → Persönlich → Zertifikate“.
Select the certificate in the list on the right.
Navigieren Sie in der Menüleiste oben zu „ -Aktion“ → „Alle Aufgaben“ → „Exportieren…“. Dadurch wird der Assistent zum Exportieren von „ “-Zertifikaten gestartet.
Confirm the introduction of the assistant with Next.
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.
Fügen Sie nach Möglichkeit alle Zertifikate im Zertifizierungspfad ein
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).
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.
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.
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.
Confirm the export with Finish.
Stellen Sie sicher, dass das Zertifikat in der Liste auf der rechten Seite weiterhin ausgewählt ist.
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.
Open the PKI Proxy Certificate Manager.
Click the Add… button.
Füllen Sie die Pflichtfelder aus.
Standort, z. B.
https://localhost:9266Authentifizierung
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.
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.
Ö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.
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.
Navigieren Sie im angezeigten Zertifikatsmanager in der Baumstruktur auf der linken Seite zu „ -Zertifikate – Lokaler Computer → Persönlich → Zertifikate “.
The published certificate is now listed on the right.
Windows ADCS Configuration¶
Öffnen Sie den „ -Server-Manager“ über das Startmenü **** oder durch Drücken der Windows-Taste + R **** auf Ihrer Tastatur und geben Sie
ServerManager.exeein.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.
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.
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.msceingeben. 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.