Azure Cloud HSM-certificaatopslag

Azure Cloud HSM ondersteunt certificaatopslag via PKCS#11, waardoor toepassingen X.509-certificaten naast sleutels kunnen beheren. Deze zelfstudie bevat stapsgewijze instructies voor het instellen van vereisten voor certificaatopslag, waaronder Azure Blob Storage en configuratie van beheerde identiteiten. Zie DE PKCS#11 API voor certificaatopslag voor meer informatie over het gebruik van PKCS#11 API's voor het beheren van certificaten.

Prerequisites

De volgende vereisten zijn vereist voor het ondersteunen van certificaatopslag met Azure Cloud HSM. Zie de Azure handleiding voor onboarding van cloud-HSM voor SDK-installatie en -configuratie als de HSM-implementatie niet is voltooid.

Systeemvereisten

  • Azure Cloud HSM-resource wordt geïmplementeerd, geïnitialiseerd en geconfigureerd.
  • Azure Cloud HSM Client SDK
  • Kopie van partitie-eigenaarcertificaat 'PO.crt' op de toepassingsserver.
  • Bekend adres van uw HSM hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net.
  • Kennis van cryptogebruikersreferenties

Vereisten voor certificaatopslag

  • Azure Blob Storage-account
  • Beheerde identiteit voor toegang tot opslag

Belangrijk

Klanten die een versie van Windows Server gebruiken, moeten de meest recente versie van Visual C++ Redistributable installeren.

Een Azure Blob Storage-account instellen

Voordat u de PKCS#11-API voor certificaatopslag kunt gebruiken, moet u een Azure Blob Storage-account maken. Dit opslagaccount bevat de PKCS#11-certificaatobjecten, die worden opgeslagen en opgehaald in JWS-indeling.

  1. Als u een Azure Blob Storage-account voor PKCS#11-certificaatopslag wilt instellen, gaat u naar de Azure-portal en maakt u een nieuw opslagaccount.

  2. Nadat het opslagaccount is gemaakt, gaat u naar het account in de Azure-portal en selecteert u Containers onder Gegevensopslag. Maak een nieuwe container om de blobs op te slaan.

    Schermopname van het maken van een container in Azure Blob Storage.

  3. Nadat u de container hebt gemaakt, zoekt u de URL van het containereindpunt door naar containereigenschappen te navigeren. Deze URL is later nodig.

    Scherm van het zoeken naar containereigenschappen in Azure Blob Storage.

  4. In containereigenschappen vindt u de container-URL die wordt vermeld. Deze URL is later in het bestand azcloudhsm_application.cfg vereist om PKCS#11-toepassingen in staat te stellen de opslaglocatie voor certificaatobjecten te vinden.

    Schermopname van container-URL in Azure Blob Storage properties.

Een door de gebruiker toegewezen beheerde identiteit instellen voor toegang tot opslag

De volgende vereiste voor certificaatopslag is het maken van een door de gebruiker toegewezen beheerde identiteit. Deze identiteit krijgt de benodigde rol om toegang te krijgen tot het Azure Blob Storage-account en wordt gebruikt voor verificatie vanaf uw aangewezen beheer-VM.

Opmerking

In het volgende voorbeeld wordt een door de gebruiker toegewezen beheerde identiteit gemaakt en gebruikt. Een door het systeem toegewezen beheerde identiteit kan ook worden gemaakt en gebruikt op de virtuele machine.

  1. Als u een Gebruiker toegewezen beheerde identiteit voor PKCS#11-certificaatopslag wilt maken, gaat u naar de Azure-portal en maakt u een nieuwe identiteit.

  2. Nadat u de beheerde identiteit hebt gemaakt, noteert u de client-id. Dit is later in het bestand azcloudhsm_application.cfg vereist om verificatie in te schakelen voor het opslagaccount van uw VIRTUELE machine.

    Schermopname van Managed Identity Client-ID in Azure portal.

  3. Wijs de juiste Azure-rol toe om de beheerde identiteit machtigingen te geven om het eerder gemaakte Blob Storage-account te lezen en ernaar te schrijven. Wijs de rol Inzender voor opslagblobgegevens toe aan de beheerde identiteit, stel het bereik in op Opslag en selecteer de specifieke opslagaccountresource.

    Schermafbeelding van het toewijzen van de rol Opslag Blob Data Bijdrager in de Azure-portal.

    Schermopname van het instellen van de reikwijdte voor de rol 'Bijdrager van Opslagblobgegevens'.

  4. Wijs de door de gebruiker toegewezen beheerde identiteit toe aan de VM waarop uw PKCS#11-certificaatopslagtoepassing wordt uitgevoerd. Ga naar uw VM-resource in de Azure-portal, selecteer de sectie Beveiliging, selecteer Identiteit en voeg de door de gebruiker toegewezen identiteit toe.

    Scherm van het toevoegen van door de gebruiker toegewezen beheerde identiteit aan vm in Azure portal.

    Schermopname van vm-identiteitsinstellingen in Azure portal.

De Azure Cloud HSM-clienthulpprogramma's configureren

Een handtekeningsleutel voor opslag maken

Gebruik de volgende azcloudhsm_util opdracht om in één stap een RSA-handtekeningsleutelpaar te maken voor PKCS#11-certificaatopslag. Standaard wordt een 2048-bits RSA-sleutel gegenereerd met een openbare exponent van 65537. U kunt de sleutelgrootte indien nodig wijzigen. Voordat u de opdracht uitvoert, moet u ervoor zorgen dat azcloudhsm_client deze op de achtergrond als een service wordt uitgevoerd.

Vervang de tijdelijke aanduidingen als volgt:

  • PKCS11_S met de gebruikersnaam van uw cryptografiegebruiker (bijvoorbeeld cu1)
  • PKCS11_P met uw wachtwoord voor cryptografiegebruikers (bijvoorbeeld user1234)
  • SIGNING_KEY_ID met de gewenste sleutelpaar-id (deze id wordt ook later in uw azcloudhsm_application.cfg bestand gebruikt)

Instellen SIGNING_KEY_ID op een willekeurige waarde voor dit voorbeeld:

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%

Belangrijk

Zorg ervoor dat elk van de HSM-knooppunten succes retourneert.

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

Configuratiebestanden bijwerken

Toepassingsconfiguratie bijwerken

U moet de volgende parameters bijwerken in het bestand azcloudhsm_application.cfg.

CERTSTORAGE_URL: Dit veld verwijst naar de URL van de container binnen het Blob Storage-account van de klant en wordt gebruikt om certificaatgegevens op te slaan. (bijvoorbeeld https://chsmstorage.blob.core.windows.net/certificates)

CERTSTORAGE_SIGNING_KEYID: Dit veld verwijst naar de id die is toegewezen aan het sleutelpaar, dat wordt gebruikt om integriteitscontroles uit te voeren tijdens lees- en schrijfbewerkingen naar opslag (ondertekening en verificatie).

UAMI_CLIENT_ID: Dit veld verwijst naar de client-id van de door de gebruiker toegewezen beheerde identiteit, die wordt gebruikt om te verifiëren bij het Blob Storage-account van de klant. Als dit veld leeg blijft, wordt standaard een door het systeem toegewezen beheerde identiteit gebruikt.

Opmerking

Deze parameters zijn alleen van toepassing bij het uitvoeren van certificaatbewerkingen in PKCS#11. Dit is niet vereist voor sleutelbewerkingen.

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-configuratie valideren

Zie de integratiehandleiding voor PKCS#11 voor voorbeeldvalidatie van uw PKCS#11-configuratie.

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

Volgende stappen