Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Cloud HSM поддерживает хранилище сертификатов через PKCS#11, что позволяет приложениям управлять сертификатами X.509 вместе с ключами. В этом руководстве приведены пошаговые инструкции по настройке необходимых компонентов хранилища сертификатов, включая Хранилище BLOB-объектов Azure и конфигурацию управляемого удостоверения. Дополнительные сведения об использовании API PKCS#11 для управления сертификатами см. в API PKCS#11 для хранилища сертификатов.
Prerequisites
Следующие предварительные требования необходимы для поддержки хранилища сертификатов с Azure Cloud HSM. См. руководство по начальной настройке Azure Cloud HSM для установки и настройки SDK, если развертывание HSM не завершено.
Системные требования
- Ресурс Azure Cloud HSM развернут, инициализирован и сконфигурирован.
- клиентский SDK для облачного модуля HSM Azure
- Копия сертификата владельца секции po.crt на сервере приложений.
- Известный адрес вашего HSM
hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net. - Знание учетных данных пользователя crypto
Предварительные требования к хранилищу сертификатов
- учетная запись Хранилище BLOB-объектов Azure
- Управляемое удостоверение для доступа к хранилищу
Это важно
Клиенты, использующие любую версию Windows Server, должны установить последнюю версию распространяемого компонента Visual C++.
Настройка учетной записи Хранилище BLOB-объектов Azure
Прежде чем использовать API PKCS#11 для хранения сертификатов, необходимо создать учетную запись Хранилище BLOB-объектов Azure. Эта учетная запись хранения содержит объекты сертификатов PKCS#11, которые сохраняются и извлекаются в формате JWS.
Чтобы настроить учетную запись Хранилище BLOB-объектов Azure для хранилища сертификатов PKCS#11, перейдите на портал Azure и создайте новую учетную запись хранения.
После создания учетной записи хранения перейдите к ней на портале Azure и выберите контейнеры в хранилище данных. Создайте новый контейнер для хранения BLOB-объектов.
После создания контейнера найдите URL-адрес конечной точки контейнера, перейдя к свойствам контейнера. Этот URL-адрес необходим позже.
В свойствах контейнера вы найдете указанный URL-адрес контейнера. Этот URL-адрес требуется позже в файле azcloudhsm_application.cfg, чтобы разрешить приложениям PKCS#11 найти расположение хранилища для объектов сертификатов.
Настройте управляемое удостоверение, назначенное пользователем, для доступа к хранилищу
Следующим предварительным условием для хранилища сертификатов является создание управляемого удостоверения, назначаемого пользователем. Это удостоверение предоставляет необходимую роль для доступа к учетной записи хранилища Azure Blob и используется для аутентификации с вашей указанной виртуальной машины администратора.
Замечание
В следующем примере создается и используется управляемое удостоверение, назначаемое пользователем. Управляемое удостоверение, назначаемое системой, также можно создать и использовать на виртуальной машине.
Чтобы создать управляемое удостоверение User Assigned Identity для хранилища сертификатов PKCS#11, перейдите на портал Azure и создайте новое удостоверение.
После успешного создания управляемого удостоверения запишите идентификатор клиента, который потребуется позже в файле azcloudhsm_application.cfg для аутентификации в учетной записи хранения с виртуальной машины.
Назначьте соответствующую роль Azure, чтобы предоставить управляемому удостоверению разрешение на чтение и запись в созданную ранее учетную запись Хранилище BLOB-объектов. Назначьте управляемой идентичности роль участника данных BLOB-объектов хранилища, установив для параметра Scope значение Storage и выбрав конкретный ресурс учетной записи хранения.
Назначьте виртуальной машине, на которой выполняется приложение хранилища сертификатов PKCS#11, управляемое удостоверение, назначаемое пользователем. Перейдите к ресурсу виртуальной машины на портале Azure, выберите раздел "Безопасность", выберите "Удостоверение" и добавьте удостоверение, назначаемое пользователем.
Настройка клиентских средств Azure Cloud HSM
Создание ключа подписывания хранилища
Используйте следующую azcloudhsm_util команду, чтобы создать пару ключей подписывания RSA для хранилища сертификатов PKCS#11 на одном шаге. По умолчанию он создает 2048-разрядный ключ RSA с открытым экспонентом 65537. При необходимости можно изменить размер ключа. Перед выполнением команды убедитесь, что azcloudhsm_client запущен как служба в фоновом режиме.
Замените заполнители следующим образом:
-
PKCS11_Sс именем пользователя шифрования (например,cu1) -
PKCS11_Pс паролем пользователя для шифрования (например,user1234) -
SIGNING_KEY_IDс идентификатором требуемой пары ключей (этот идентификатор также используется позже в файлеazcloudhsm_application.cfg)
Задайте SIGNING_KEY_ID для этого примера случайное значение:
SIGNING_KEY_ID=$(tr -dc 'a-z' </dev/urandom | head -c 10)
Линукс:
sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s $PKCS11_S -p $PKCS11_P genRSAKeyPair -m 2048 -e 65537 -l $SIGNING_KEY_ID -id $SIGNING_KEY_ID
Windows:
.\azcloudhsm_util.exe singlecmd loginHSM -u CU -s %PKCS11_S% -p %PKCS11_P% genRSAKeyPair -m 2048 -e 65537 -l %SIGNING_KEY_ID% -id %SIGNING_KEY_ID%
Это важно
Убедитесь, что каждый из узлов HSM возвращает успех.
chsmVMAdmin@AdminVM:/opt/azurecloudhsm/bin$ sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 genRSAKeyPair -m 2048 -e 65537 -l signkeyid -id signkeyid
Version info, Client Version: <version>, SDK API Version: <version>, SDK Package Version: <version>
Cfm3Initialize() returned app id : 01000000
session_handle 1000000
Current FIPS mode is: 00000000
Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS
Cluster Status:
Node id 1 status: 0x00000000 : HSM Return: SUCCESS
Node id 2 status: 0x00000000 : HSM Return: SUCCESS
Node id 3 status: 0x00000000 : HSM Return: SUCCESS
Command: genRSAKeyPair -m 2048 -e 65537 -L signkeyid -id signkeyid
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS
Cfm3GenerateKeyPair: public key handle: 262151 private key handle: 262152
Cluster Status:
Node id 1 status: 0x00000000 : HSM Return: SUCCESS
Node id 2 status: 0x00000000 : HSM Return: SUCCESS
Node id 3 status: 0x00000000 : HSM Return: SUCCESS
Обновление файлов конфигурации
Обновление конфигурации приложения
Вам потребуется обновить следующие параметры в файле azcloudhsm_application.cfg.
CERTSTORAGE_URL. Это поле ссылается на URL-адрес контейнера в Хранилище BLOB-объектов учетной записи клиента и используется для хранения сведений о сертификате. (например, https://chsmstorage.blob.core.windows.net/certificates)
CERTSTORAGE_SIGNING_KEYID. Это поле ссылается на идентификатор, назначенный паре ключей, которая используется для проверки целостности во время операций чтения и записи в хранилище (подписывание и проверка).
UAMI_CLIENT_ID. Это поле ссылается на идентификатор клиента управляемого удостоверения, назначаемого пользователем, который используется для проверки подлинности в Хранилище BLOB-объектов учетной записи клиента. Если оставить пустым, аутентификация по умолчанию будет использовать управляемое удостоверение, назначенное системой.
Замечание
Эти параметры применяются только при выполнении операций с сертификатами в PKCS#11. Это не требуется для ключевых операций.
DAEMON_ID=1
SOCKET_TYPE=UNIXSOCKET
PORT=1111
USER_KEK_HANDLE=262150
DEFAULT_WRAP_WITH_TRUSTED=1
CERTSTORAGE_URL=https://chsmstorage.blob.core.windows.net/certificates
CERTSTORAGE_SIGNING_KEYID=hjgrwvvofe
UAMI_CLIENT_ID=25e659cc-6570-4f3b-9617-adfbc84b2565
Проверка конфигурации PKCS#11
Пример проверки конфигурации PKCS#11 см. в руководстве по интеграции PKCS#11.
chsmVMAdmin@AdminVM:/opt/azurecloudhsm$ sudo ./cust_p11_app -s cu1 -p user1234 -l /opt/azurecloudhsm/lib64/libazcloudhsm_pkcs11.so
[INFO] Azure Cloud HSM – Loading PKCS#11 library.
[INFO] Azure Cloud HSM – C_GetFunctionList
[INFO] Azure Cloud HSM – Preparing PIN with given username and password.
[INFO] Azure Cloud HSM – C_Initialize
[INFO] Azure Cloud HSM – C_GetInfo
[INFO] Azure Cloud HSM – Retrieve access token, C_GetTokenInfo
[INFO] Azure Cloud HSM – Start session with specified token, C_OpenSession
[INFO] Azure Cloud HSM – Login with PIN, C_Login
Add Your PKCS#11 Code Here
Дальнейшие шаги
- API PKCS#11 для хранилища сертификатов. Узнайте, как использовать API PKCS#11 для управления сертификатами X.509 в Azure Cloud HSM.
- Обзор Azure Cloud HSM
- Обезопасьте Azure Cloud HSM