Службы сертификатов Active Directory (ADCS) Windows с прокси-сервером PKI

В данном документе описывается настройка службы сертификатов Active Directory (ADCS) в Windows с использованием PKI Proxy и NetHSM.

Prerequisits

  • NetHSM

    • Provisioned

    • Administrative access

  • PKI Proxy server

    • Модуль NetHSM PKCS#11 установлен и настроен для работы с NetHSM

  • Сервер CA (Windows Server)

    • ADCS role installed, but not configured

    • PKI Proxy client tools installed

    • Клиентские инструменты не требуются, если на этом сервере также запущен сервер PKI Proxy, поскольку он уже содержит эти инструменты.

    • Pynitrokey installed

Root CA Key and Certificate

В приведенной ниже таблице перечислены ключевые алгоритмы и длины ключей, а также алгоритмы хеширования, которые служба ADCS в Windows может использовать с 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

Важно

Пожалуйста, придерживайтесь рекомендаций по выбору безопасного алгоритма ключа, его длины и алгоритма хеширования.

Ключ и сертификат можно либо сгенерировать заново, либо перенести уже существующие. Для получения более подробной информации о подходе, подходящем для вашей конкретной ситуации, ознакомьтесь с приведенными ниже подразделами.

Generate a new Root CA Key and Certificate on Windows

Следующие инструкции позволяют создать новый ключ и сертификат для использования в корневом центре сертификации службы « » ( Root CA) в ADCS.

Совет

Обычно проще сгенерировать ключ и сертификат с помощью мастера настройки ADCS, а затем следовать инструкциям по переносу существующих ключей и сертификатов, приведенным по адресу ` <pkiproxy-windows-ca.html#migrate-existing-key-and-certificate>` __.

В данном случае для генерации ключа с явными расширениями центра сертификации используется шаблон запроса. Конкретные значения необходимо адаптировать с учетом особенностей вашей среды.

Шаблон запроса необходимо сохранить в файл с именем RootCA.inf и следующим содержанием.

Этот шаблон сгенерирует ключ RSA длиной 4096 бит. Вам необходимо заменить <CA-NAME> на название вашего центра сертификации.

[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

Сертификат добавлен в хранилище сертификатов локального компьютера. Экспортируйте сертификат в файл PFX, заменив <THUMBPRINT> на соответствующее значение из вывода предыдущей команды.

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

Значение пароля используется для шифрования архива PKCS#12 (файла PFX). Вы можете перейти к следующей главе « » «Настройка NetHSM».

Migrate existing Key and Certificate

Для переноса существующего ключа и сертификата их необходимо экспортировать из хранилища сертификатов на сервере ADCS, а полученный архив — импортировать в NetHSM.

Важно

Прежде чем вносить изменения в производственный центр сертификации, рекомендуется создать его резервную копию. Для получения дополнительной информации см. страницу this.

  1. Откройте страницу certlm.msc.

  2. Перейдите по пути « » → «Сертификаты» → «Локальный компьютер» → «Личные» → «Сертификаты».

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

  4. В верхней панели меню перейдите в « » → «Action» → «All Tasks» → «Export…». При этом запустится мастер экспорта сертификатов ** .

  5. Confirm the introduction of the assistant with Next.

  6. Установите переключатель рядом с пунктом « » («Да, экспортировать закрытый ключ») и подтвердите выбор, нажав « » («Да, экспортировать»). Затем нажмите « » («Да, экспортировать»). Если переключатель недоступен, ключ помечен как не подлежащий экспорту. В этом случае данное руководство не применимо к рассматриваемому сценарию использования.

  7. По возможности включите все сертификаты в путь сертификации

  8. Установите флажок рядом с пунктом « » («Да, экспортировать закрытый ключ») и подтвердите выбор, нажав « » («Да, экспортировать»). Затем.

  9. Установите флажок рядом с пунктом « » («Обмен личными данными» — PKCS #12 (.PFX)). Убедитесь, что выбраны следующие параметры:

    • По возможности включите все сертификаты в путь сертификации

    • Экспортировать все расширенные свойства

    • Enable certificate privacy

    Confirm the selection with Next.

  10. Установите флажок рядом с пунктом « » (Пароль). Введите пароль в соответствующие текстовые поля. В раскрывающемся списке рядом с пунктом « Encryption» (Шифрование) выберите « » (Собственный) AES256-SHA256.

    Важно

    Метод шифрования AES256-SHA256 поддерживается только в Windows Server 2019 и Windows 11. Для использования в более старых версиях следует оставить метод по умолчанию TripleDES-SHA1.

    Confirm the selection with Next.

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

    Важно

    Экспортированный ключ и сертификат следует хранить в надёжном месте, доступ к которому имеют только уполномоченные пользователи.

  12. Confirm the export with Finish.

  13. Убедитесь, что сертификат по-прежнему выбран в списке справа.

  14. В верхней панели меню перейдите в « » → «All Tasks» → «Delete». Подтвердите удаление закрытого ключа и сертификата, нажав « » → «Yes».

Вы можете перейти к следующей главе « » «Настройка NetHSM».

NetHSM Configuration

Ключ и сертификат из предыдущей главы необходимо импортировать в NetHSM. С помощью команды ` нитропия <../software/nitropy/index.html>`__ можно импортировать архив PKCS#12 непосредственно в NetHSM.

Импортируйте архив PKCS#12 следующим образом, заменив <KEY-ID>, <MECHANISM> и <PKCS12-ARCHIVE> соответствующими значениями.

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

Для ключей RSA механизм должен быть rsa_signature_pkcs1, а для ключей ECDSA — ecdsa_signature.

Теперь вы можете убедиться, что сертификат доступен на NetHSM.

nitropy nethsm list-keys

Ключ будет отображен с указанным идентификатором ключа из предыдущей команды.

PKI Proxy Server Configuration

На прокси-сервере PKI необходимо предоставить общий доступ к только что добавленному сертификату из NetHSM. Для получения дополнительной информации выполните действия, описанные в статье « : публикация сертификатов из NetHSM».

Windows ADCS Configuration

PKI Proxy Client Tools Configuration

Далее мы добавляем ключ и сертификат в хранилище сертификатов локального компьютера в Windows.

  1. Open the PKI Proxy Certificate Manager.

  2. Click the Add… button.

  3. Заполните обязательные поля.

    • Адрес, например, https://localhost:9266

    • Аутентификация

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

Теперь вы можете убедиться, что сертификат присутствует в хранилище сертификатов локального компьютера.

  1. Откройте диалоговое окно «Выполнить» ( ), щелкнув правой кнопкой мыши по меню «Пуск» ( ) в Windows и выбрав пункт «Выполнить» ( ) либо нажав клавишу Windows + R на клавиатуре.

  2. В диалоговом окне « » (Запуск) введите certlm.msc и подтвердите, нажав Введите с клавиатуры или нажав «ОК».

  3. В открывшемся диспетчере сертификатов перейдите по дереву, расположенному слева, к разделу «Сертификаты службы безопасности и удостоверений» ( ) — «Локальный компьютер» → «Личные» → «Сертификаты».

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

Windows ADCS Configuration

  1. Откройте «Диспетчер сервера » ( Server Manager) из меню «Пуск» (Start) **** или нажав клавишу Windows + R на клавиатуре и введите ServerManager.exe.

  2. В строке меню в правом верхнем углу щелкните значок флага и выберите « » (Настройка служб сертификатов Active Directory) на целевом сервере из списка уведомлений после развертывания. При этом запустится мастер настройки служб сертификатов 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

      Выберите « » (Enterprise CA) или « » (Standalone CA) в зависимости от вашей среды.

    • CA Type

      Выбрать корневой центр сертификации « »

    • Private Key

      Установите переключатель рядом с пунктом « » («Использовать существующий закрытый ключ»). При выборе этого параметра установите переключатель рядом с пунктом « » («Выбрать сертификат и использовать связанные с ним закрытые ключи»).

      • Existing Certificate

        В списке сертификатов **** выберите сертификат, который хотите использовать. Убедитесь, что флажок рядом с пунктом « » («Разрешить взаимодействие администратора при доступе центра сертификации к закрытому ключу») не установлен. В этом нет необходимости, поскольку KSP прокси PKI не требует дополнительной аутентификации для использования закрытого ключа.

  4. После завершения работы мастера настройки откройте центр сертификации « » ( ) из меню «Пуск» ( ) ( ) или нажав клавишу Windows + R ( ) ( ) на клавиатуре и введя certsrv.msc. Убедиться в том, что служба центра сертификации запущена правильно, можно по появлению значка в виде зеленой точки с белой галочкой рядом с названием центра сертификации.

Важно

Работоспособность центра сертификации зависит от наличия закрытого ключа и сертификата. Если они отсутствуют, служба центра сертификации может не запуститься или неожиданно завершить работу. В случае ошибки обратитесь к журналу событий Windows « » ( ) для получения дополнительной информации.