Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Cloud HSM admite el almacenamiento de certificados a través de PKCS#11, lo que permite a las aplicaciones administrar certificados X.509 junto con claves. En este tutorial se proporcionan instrucciones paso a paso para configurar los requisitos previos de almacenamiento de certificados, incluida la configuración de Azure Blob Storage e Identidad administrada. Para más información sobre el uso de las API de PKCS#11 para administrar certificados, consulte la API PKCS#11 para Almacenamiento de certificados.
Prerrequisito
Los siguientes requisitos previos son necesarios para admitir el almacenamiento de certificados con Azure Cloud HSM. Referencia La guía de incorporación de HSM en la nube de Azure para la instalación y configuración del SDK si la implementación de HSM no está completa.
Requisitos del sistema
- El recurso de HSM de Azure en la nube se implementa, inicializa y configura.
- SDK de cliente HSM en la nube de Azure
- Copia del certificado de propietario de partición "PO.crt" en el servidor de aplicaciones.
- Dirección conocida del HSM
hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net. - Conocimientos de credenciales de usuario criptográfico
Requisitos previos de almacenamiento de certificados
- cuenta de Azure Blob Storage
- Identidad administrada para acceder al almacenamiento
Importante
Los clientes que usan cualquier versión de Windows Server deben instalar la versión más reciente de Visual C++ Redistributable.
Configuración de una cuenta de Azure Blob Storage
Para poder usar la API PKCS#11 para El almacenamiento de certificados, debe crear una cuenta de Azure Blob Storage. Esta cuenta de almacenamiento contendrá los objetos de certificado PKCS#11, que se guardan y recuperan en formato JWS.
Para configurar una cuenta de Azure Blob Storage para el almacenamiento de certificados PKCS#11, vaya al portal de Azure y cree un nuevo Cuenta de almacenamiento.
Después de crear correctamente la cuenta de almacenamiento, vaya a ella en el portal de Azure y seleccione Containers en Data storage. Aquí, creas un nuevo contenedor para almacenar los bloques.
Después de crear el contenedor, busque la dirección URL del punto de conexión del contenedor; para ello, vaya a Propiedades del contenedor. Esta dirección URL es necesaria más adelante.
En Propiedades del contenedor, encontrará la dirección URL del contenedor en la lista. Esta dirección URL es necesaria más adelante en el archivo azcloudhsm_application.cfg para permitir que las aplicaciones PKCS#11 busquen la ubicación de almacenamiento de los objetos de certificado.
Configuración de la identidad administrada asignada por el usuario para acceder al almacenamiento
El siguiente requisito previo para el almacenamiento de certificados es crear una identidad administrada asignada por el usuario. A esta identidad se le concede el rol necesario para acceder a la cuenta de Azure Blob Storage y se usa para autenticarse desde la máquina virtual de administración designada.
Nota:
En el ejemplo siguiente se crea y se usa una identidad administrada asignada por el usuario. También se puede crear y usar una identidad administrada asignada por el sistema en la máquina virtual.
Para crear un Identidad administrada asignada por el usuario para el almacenamiento de certificados PKCS#11, vaya al portal de Azure y cree una nueva identidad.
Después de crear correctamente la identidad administrada, anote el identificador de cliente, que se requiere más adelante en el archivo azcloudhsm_application.cfg para habilitar la autenticación en la cuenta de almacenamiento desde la máquina virtual.
El siguiente paso consiste en asignar el rol de Azure adecuado para conceder permiso de identidad administrada para leer y escribir en la cuenta de Blob Storage creada anteriormente. Asigne el rol Colaborador de datos de Storage Blob a la identidad administrada, estableciendo el ámbito en Storage y seleccionando el recurso de cuenta de almacenamiento específico.
El siguiente paso es asignar la identidad administrada asignada por el usuario a la máquina virtual que ejecutará la aplicación de almacenamiento de certificados PKCS#11. Vaya al recurso de máquina virtual en el portal de Azure, vaya a la sección Security, seleccione Identity y agregue la identidad asignada por el usuario.
Configuración de las herramientas de cliente de HSM en la nube de Azure
Creación de una clave de firma de almacenamiento
El siguiente comando azcloudhsm_util se puede usar para crear un par de claves de firma RSA para el almacenamiento de certificados PKCS#11 en un solo paso. De forma predeterminada, genera una clave RSA de 2048 bits con un exponente público de 65537. Puede modificar el tamaño de la clave según sea necesario. Antes de ejecutar el comando, asegúrese de que el azcloudhsm_client se ejecuta como servicio en segundo plano.
Reemplace los marcadores de posición de la siguiente forma:
- PKCS11_S con el nombre de usuario Crypto. (por ejemplo, cu1)
- PKCS11_P con la contraseña de usuario criptográfico. (por ejemplo, user1234)
- SIGNING_KEY_ID con el identificador de par de claves deseado (este identificador también se usará más adelante en el archivo azcloudhsm_application.cfg).
Identificador de clave de firma En este ejemplo, vamos a establecer el identificador de clave de firma en un valor aleatorio.
SIGNING_KEY_ID=$(tr -dc 'a-z' </dev/urandom | head -c 10)
Linux:
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%
Importante
Asegúrese de que cada uno de los nodos HSM devuelvan éxito.
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: 2.09.07.02, SDK API Version: 2.09.07.02, SDK Package Version: 2.0.1.2
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
Actualizar archivos de configuración
Actualización de la configuración de la aplicación
Deberá actualizar los parámetros siguientes en el archivo azcloudhsm_application.cfg.
CERTSTORAGE_URL: este campo hace referencia a la dirección URL del contenedor dentro de la cuenta de Blob Storage del cliente y se usa para almacenar información del certificado. (por ejemplo, https://chsmstorage.blob.core.windows.net/certificates)
CERTSTORAGE_SIGNING_KEYID: este campo hace referencia al identificador asignado al par de claves, que se usa para realizar comprobaciones de integridad durante las operaciones de lectura y escritura en el almacenamiento (firma y comprobación).
UAMI_CLIENT_ID: este campo hace referencia al identificador de cliente de la identidad administrada asignada por el usuario, que se usa para autenticarse en la cuenta de Blob Storage del cliente. Si se deja en blanco, la autenticación usará de forma predeterminada una identidad administrada asignada por el sistema.
Nota:
Estos parámetros solo se aplican al ejecutar operaciones de certificado en PKCS#11. No es necesario para las operaciones clave.
DAEMON_ID=1
SOCKET_TYPE=UNIXSOCKET
PORT=1111
USER_KEK_HANDLE=262150
DEFAULT_WRAP_WITH_TRUSTED=1
CERTSTORAGE_URL=https://chmsstorage.blob.core.windows.net/certificates
CERTSTORAGE_SIGNING_KEYID=hjgrwvvofe
UAMI_CLIENT_ID=25e659cc-6570-4f3b-9617-adfbc84b2565
Validación de la configuración de PKCS#11
Consulte la Guía de integración de PKCS#11 para la validación basada en muestras de la configuración de 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
Pasos siguientes
- api de PKCS#11 para almacenamiento de certificados: aprenda a usar las API de PKCS#11 para administrar certificados X.509 en Azure Cloud HSM.
- Información general de Azure Cloud HSM
- Asegure su HSM de Azure Cloud