Usługi certyfikatów Active Directory systemu Windows (ADCS) z serwerem proxy PKI

W niniejszym dokumencie opisano konfigurację usług certyfikatów Active Directory systemu Windows (ADCS) z wykorzystaniem PKI Proxy i NetHSM.

Prerequisits

  • NetHSM

    • Provisioned

    • Administrative access

  • PKI Proxy server

    • Moduł NetHSM PKCS#11 został zainstalowany i skonfigurowany do pracy z NetHSM

  • Serwer CA (Windows Server)

    • ADCS role installed, but not configured

    • PKI Proxy client tools installed

    • Narzędzia klienckie nie są wymagane, jeśli na tym serwerze działa również serwer PKI Proxy, ponieważ zawiera on te narzędzia.

    • Pynitrokey installed

Root CA Key and Certificate

W poniższej tabeli wymieniono algorytmy kluczy i długości kluczy wraz z algorytmami haszującymi, z których usługa ADCS systemu Windows może korzystać w połączeniu z NetHSM.

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

Ważne

Prosimy o stosowanie się do najlepszych praktyk dotyczących wyboru bezpiecznego algorytmu klucza, długości klucza oraz algorytmu skrótu.

Klucz i certyfikat mogą być albo nowo wygenerowane, albo można przenieść już istniejące. Aby dowiedzieć się więcej o sposobie postępowania w konkretnej sytuacji, zapoznaj się z poniższymi podrozdziałami.

Generate a new Root CA Key and Certificate on Windows

Poniższa instrukcja pozwala utworzyć nowy klucz i certyfikat do wykorzystania w głównym urzędzie certyfikacji „ w usłudze ADCS.

Wskazówka

Zazwyczaj łatwiej jest wygenerować klucz i certyfikat za pomocą kreatora konfiguracji ADCS, a następnie postępować zgodnie z instrukcjami zawartymi na stronie Migracja istniejącego klucza i certyfikatu.

W tym przypadku wykorzystuje się szablon żądania do wygenerowania klucza z jawnymi rozszerzeniami certyfikatu CA. Konkretne wartości należy dostosować do własnego środowiska.

Szablon żądania należy zapisać w pliku o nazwie RootCA.inf, a jego treść powinna wyglądać następująco.

Ten szablon wygeneruje klucz RSA o długości 4096 bitów. Należy zastąpić adres <CA-NAME> nazwą własnego urzędu certyfikacji (CA).

[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

Certyfikat został dodany do lokalnego magazynu certyfikatów. Wyeksportuj certyfikat do pliku PFX, zastępując <THUMBPRINT> odpowiednią wartością z wyniku poprzedniego polecenia.

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

Hasło służy do szyfrowania archiwum PKCS#12 (pliku PFX). Można przejść do rozdziału „ ” Konfiguracja NetHSM.

Migrate existing Key and Certificate

Aby przenieść istniejący klucz i certyfikat, należy je wyeksportować z magazynu certyfikatów na serwerze ADCS, a uzyskane w ten sposób archiwum zaimportować do urządzenia NetHSM.

Ważne

Przed wprowadzeniem zmian w produkcyjnym urzędzie certyfikacji zaleca się utworzenie jego kopii zapasowej. Więcej informacji można znaleźć na stronie this.

  1. Otwórz stronę certlm.msc.

  2. Przejdź do sekcji „ ” → „Certyfikaty” → „Komputer lokalny” → „Osobiste” → „Certyfikaty”.

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

  4. W pasku menu u góry przejdź do opcji „ ” → „All Tasks” → „Export…”. Spowoduje to uruchomienie kreatora eksportu certyfikatów ** .

  5. Confirm the introduction of the assistant with Next.

  6. Zaznacz przycisk opcji obok opcji „ ” (Tak, wyeksportuj klucz prywatny), a następnie potwierdź wybór, klikając „ ” (Tak, wyeksportuj klucz prywatny). Następnie kliknij „ ” (Tak, wyeksportuj klucz prywatny). Jeśli przycisk opcji jest niedostępny, oznacza to, że klucz został oznaczony jako niepodlegający eksportowi. W takim przypadku niniejszy przewodnik nie ma zastosowania w danym przypadku użycia.

  7. W miarę możliwości należy uwzględnić wszystkie certyfikaty w ścieżce certyfikacji

  8. Zaznacz przycisk opcji obok opcji „ ” (Tak, wyeksportuj klucz prywatny), a następnie potwierdź wybór, klikając „ ” (Tak, wyeksportuj klucz prywatny). Następnie kliknij „ ” (Tak, wyeksportuj klucz prywatny).

  9. Zaznacz przycisk opcji obok pozycji „ Personal Information Exchange — PKCS #12 (.PFX)”. Upewnij się, że zaznaczyłeś następujące opcje:

    • W miarę możliwości należy uwzględnić wszystkie certyfikaty w ścieżce certyfikacji

    • Eksportuj wszystkie właściwości rozszerzone

    • Enable certificate privacy

    Confirm the selection with Next.

  10. Zaznacz przycisk opcji obok pozycji „ ” („Hasło”). Wpisz hasło w polach tekstowych przeznaczonych na hasło. Z listy rozwijanej obok pozycji „ Encryption” („Szyfrowanie”) wybierz opcję „ ” („Szyfrowanie”) AES256-SHA256.

    Ważne

    Metoda szyfrowania AES256-SHA256 jest obsługiwana dopiero od wersji Windows Server 2019 i Windows 11. W przypadku starszych wersji należy zachować domyślną metodę TripleDES-SHA1.

    Confirm the selection with Next.

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

    Ważne

    Wyeksportowany klucz i certyfikat należy przechowywać w bezpiecznym miejscu, do którego dostęp mają wyłącznie uprawnieni użytkownicy.

  12. Confirm the export with Finish.

  13. Upewnij się, że certyfikat jest nadal zaznaczony na liście po prawej stronie.

  14. W pasku menu u góry przejdź do opcji „ ” → „All Tasks” → „Delete”. Potwierdź usunięcie klucza prywatnego i certyfikatu, wybierając opcję „ ” → „Yes”.

Możesz przejść do rozdziału Konfiguracja NetHSM.

NetHSM Configuration

Klucz i certyfikat z poprzedniego rozdziału należy zaimportować do urządzenia NetHSM. Za pomocą poleceni nitropia możemy zaimportować archiwum PKCS#12 bezpośrednio do urządzenia NetHSM.

Zaimportuj archiwum PKCS#12 w następujący sposób, zastępując adresy <KEY-ID>, <MECHANISM> oraz <PKCS12-ARCHIVE> odpowiednimi wartościami.

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

W przypadku kluczy RSA mechanizm ten musi być zgodny z rsa_signature_pkcs1, a w przypadku kluczy ECDSA — z ecdsa_signature.

Można teraz sprawdzić, czy certyfikat jest dostępny na urządzeniu NetHSM.

nitropy nethsm list-keys

Klucz zostanie wyświetlony wraz z identyfikatorem klucza podanym w poprzednim poleceniu.

PKI Proxy Server Configuration

Na serwerze proxy PKI należy udostępnić właśnie dodany certyfikat z urządzenia NetHSM. Aby uzyskać więcej informacji, należy postępować zgodnie z instrukcjami zawartymi w artykule „ : Publish Certificates from the NetHSM”.

Windows ADCS Configuration

PKI Proxy Client Tools Configuration

Poniżej udostępniamy klucz i certyfikat w lokalnym magazynie certyfikatów systemu Windows.

  1. Open the PKI Proxy Certificate Manager.

  2. Click the Add… button.

  3. Wypełnij wymagane pola.

    • Adres, np. https://localhost:9266

    • Uwierzytelnianie

    • 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.

Można teraz sprawdzić, czy certyfikat znajduje się w lokalnym magazynie certyfikatów.

  1. Otwórz okno dialogowe „ ” (Uruchom), klikając prawym przyciskiem myszy menu Start systemu Windows **** i wybierając opcję „ ” (Uruchom) lub naciskając klawisz Windows + R **** na klawiaturze.

  2. W oknie dialogowym „ ” (Uruchom) wpisz certlm.msc i potwierdź, naciskając klawisz Wpisz na klawiaturze lub kliknij przycisk OK.

  3. W wyświetlonym menedżerze certyfikatów przejdź w drzewie po lewej stronie do sekcji „ ” → „Certificates” → „Local Computer” → „Personal” → „Certificates”.

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

Windows ADCS Configuration

  1. Otwórz Menedżera serwera **** z menu Start systemu **** lub naciskając klawisz Windows + R na klawiaturze i wpisz ServerManager.exe.

  2. W pasku menu w prawym górnym rogu kliknij ikonę flagi i wybierz opcję „ ” (Skonfiguruj usługi certyfikatów Active Directory) na serwerze docelowym spośród powiadomień po wdrożeniu. Spowoduje to uruchomienie kreatora konfiguracji usług certyfikatów Active Directory ( ).

  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 zależności od posiadanego środowiska wybierz certyfikat „ ” (Enterprise CA) lub „ ” (samodzielny certyfikat CA).

    • CA Type

      Wybierz certyfikat główny „

    • Private Key

      Zaznacz przycisk opcji obok pozycji „ ” (Użyj istniejącego klucza prywatnego). W ramach tej opcji zaznacz przycisk opcji obok pozycji „ ” (Wybierz certyfikat i użyj powiązanych z nim kluczy prywatnych).

      • Existing Certificate

        Na liście certyfikatów **** wybierz certyfikat, którego chcesz użyć. Upewnij się, że pole wyboru obok opcji „ ” (Zezwól na interakcję administratora podczas uzyskiwania dostępu do klucza prywatnego przez urząd certyfikacji) nie jest zaznaczone. Nie jest to konieczne, ponieważ moduł PKI Proxy KSP nie wymaga żadnego dodatkowego uwierzytelniania w celu korzystania z klucza prywatnego.

  4. Po zakończeniu działania kreatora konfiguracji otwórz „ ” (Urząd certyfikacji) z menu Start **** lub naciskając klawisz Windows + R **** na klawiaturze i wpisując certsrv.msc. Prawidłowe uruchomienie usługi urzędu certyfikacji można sprawdzić, obserwując zieloną kropkę z ikoną białego znacznika wyboru obok nazwy urzędu certyfikacji.

Ważne

Dostępność urzędu certyfikacji zależy od dostępności klucza prywatnego i certyfikatu. Jeśli nie są one dostępne, usługa urzędu certyfikacji może się nie uruchomić lub zostanie nieoczekiwanie zatrzymana. W razie wystąpienia błędu sprawdź dziennik zdarzeń systemu Windows pod adresem ** , aby uzyskać więcej informacji.