Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Cloud HSM prend en charge le stockage de certificats via PKCS#11, ce qui permet aux applications de gérer des certificats X.509 en même temps que des clés. Ce tutoriel fournit des instructions pas à pas pour configurer les prérequis de stockage de certificats, notamment la configuration des Azure Blob Storage et de l’identité managée. Pour plus d’informations sur l’utilisation des API PKCS#11 pour gérer les certificats, reportez-vous à l’API PKCS#11 pour le stockage de certificats.
Prérequis
Les conditions préalables suivantes sont requises pour prendre en charge le stockage de certificats avec Azure HSM cloud. Consultez le Guide d’intégration du HSM Cloud Azure pour l’installation et la configuration du SDK si le déploiement du HSM n’est pas terminé.
Configuration système requise
- Azure ressource HSM cloud est déployée, initialisée et configurée.
- Kit de développement logiciel (SDK) client Azure Cloud HSM
- Copie du certificat de propriétaire de partition « PO.crt » sur le serveur d’applications.
- Adresse connue de votre HSM
hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net. - Connaissance des informations d’identification de l’utilisateur crypto
Conditions préalables pour le stockage de certificats
- compte Azure Blob Storage
- Identité managée pour accéder au stockage
Important
Les clients qui utilisent n’importe quelle version de Windows Server doivent installer la version la plus récente de Visual C++ Redistributable.
Configuration d’un compte Azure Blob Storage
Avant de pouvoir utiliser l’API PKCS#11 pour le stockage de certificats, vous devez créer un compte Azure Blob Storage. Ce compte de stockage contiendra les objets de certificat PKCS#11, qui sont enregistrés et récupérés au format JWS.
Pour configurer un compte Azure Blob Storage pour le stockage de certificats PKCS#11, accédez au portail Azure et créez un compte Storage.
Après avoir créé le compte de stockage, accédez-y dans le portail Azure, puis sélectionnez Containers sous StockageData. Ici, vous créez un nouveau conteneur pour stocker les blobs.
Après avoir créé le conteneur, recherchez l’URL du point de terminaison de conteneur en accédant aux propriétés du conteneur. Cette URL est nécessaire ultérieurement.
Dans les propriétés de conteneur, vous trouverez l’URL du conteneur répertoriée. Cette URL est requise ultérieurement dans le fichier azcloudhsm_application.cfg pour permettre aux applications PKCS#11 de localiser l’emplacement de stockage des objets de certificat.
Configuration de l’identité managée affectée par l’utilisateur pour accéder au stockage
La configuration requise suivante pour le stockage de certificats consiste à créer une identité managée affectée par l’utilisateur. Cette identité est accordée au rôle nécessaire pour accéder au compte Azure Blob Storage et est utilisée pour s’authentifier à partir de votre machine virtuelle d’administration désignée.
Remarque
L’exemple suivant crée et utilise une identité managée affectée par l’utilisateur. Une identité managée affectée par le système peut également être créée et utilisée sur la machine virtuelle.
Pour créer une identité gérée attribuée par l'utilisateur pour le stockage de certificats PKCS#11, accédez au portail Azure et créez une nouvelle identité.
Après avoir créé l’identité managée, notez l’ID client, qui est requis ultérieurement dans le fichier azcloudhsm_application.cfg pour activer l’authentification auprès du compte de stockage à partir de votre machine virtuelle.
L’étape suivante consiste à attribuer le rôle de Azure approprié pour accorder à l’identité managée l’autorisation de lire et d’écrire dans le compte Blob Storage créé précédemment. Attribuez le rôle Contributeur aux données blob de stockage à l’identité managée, en définissant l’Étendue sur Stockage et en sélectionnant la ressource de compte de stockage spécifique.
L’étape suivante consiste à affecter l’identité managée affectée par l’utilisateur à la machine virtuelle qui exécutera votre application de stockage de certificat PKCS#11. Accédez à votre ressource de machine virtuelle dans le portail Azure, accédez à la section Security, sélectionnez Identity et ajoutez l’identité affectée par l’utilisateur.
Configurer les outils clients Azure Cloud HSM
Créer une clé de signature de stockage
La commande azcloudhsm_util suivante peut être utilisée pour créer une paire de clés de signature RSA pour le stockage de certificats PKCS#11 en une seule étape. Par défaut, il génère une clé RSA 2048 bits avec un exposant public de 65537. Vous pouvez modifier la taille de clé si nécessaire. Avant d’exécuter la commande, vérifiez que le azcloudhsm_client s’exécute en tant que service en arrière-plan.
Remplacez les espaces réservés comme suit :
- PKCS11_S avec votre nom d’utilisateur Crypto User. (par exemple, cu1)
- PKCS11_P avec votre mot de passe utilisateur crypto. (par exemple, user1234)
- SIGNING_KEY_ID avec l’ID de paire de clés souhaité (cet ID sera également utilisé ultérieurement dans votre fichier azcloudhsm_application.cfg)
ID de clé de signature Pour cet exemple, nous allons définir l’ID de clé de signature sur une valeur aléatoire.
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%
Important
Assurez-vous que chacun des nœuds HSM retourne un succès.
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
Mettre à jour les fichiers de configuration
Mettre à jour la configuration de l’application
Vous devez mettre à jour les paramètres suivants dans le fichier azcloudhsm_application.cfg.
CERTSTORAGE_URL : ce champ fait référence à l'URL du conteneur dans le compte Blob Storage du client et sert à stocker les informations de certificat. (p. ex. https://chsmstorage.blob.core.windows.net/certificates)
CERTSTORAGE_SIGNING_KEYID : ce champ fait référence à l’ID affecté à la paire de clés, qui est utilisé pour effectuer des vérifications d’intégrité pendant les opérations de lecture et d’écriture dans le stockage (signature et vérification).
UAMI_CLIENT_ID : ce champ fait référence à l'ID client de l'identité managée affectée par l'utilisateur, qui est utilisé pour s'authentifier auprès du compte Blob Storage du client. Si elle est vide, l’authentification utilise par défaut une identité managée affectée par le système.
Remarque
Ces paramètres s’appliquent uniquement lors de l’exécution d’opérations de certificat dans PKCS#11. Il n’est pas nécessaire pour les opérations clés.
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
Valider la configuration PKCS#11
Reportez-vous au Guide d’intégration PKCS#11 pour obtenir une validation basée sur des exemples de configuration 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
Étapes suivantes
- API PKCS#11 pour le stockage de certificats : découvrez comment utiliser les API PKCS#11 pour gérer les certificats X.509 dans Azure Cloud HSM.
- Aperçu de Azure Cloud HSM
- Sécuriser votre HSM Cloud Azure