Azure úložiště certifikátů pro Cloud HSM

Azure Cloud HSM podporuje úložiště certifikátů prostřednictvím PKCS#11 a umožňuje aplikacím spravovat certifikáty X.509 společně s klíči. Tento kurz obsahuje podrobné pokyny k nastavení požadavků úložiště certifikátů, včetně Azure Blob Storage a konfigurace spravované identity. Podrobnosti o použití rozhraní API PKCS#11 ke správě certifikátů najdete v tématu PKCS#11 API pro úložiště certifikátů.

Prerequisites

Pro podporu úložiště certifikátů s Azure Cloud HSM se vyžadují následující požadavky. Pokud nasazení HSM není dokončeno, podívejte se na příručku k onboardingu Azure Cloud HSM pro instalaci a konfiguraci sady SDK.

Požadavky na systém

  • Azure Cloud HSM prostředek je nasazen, inicializován a nakonfigurován.
  • klientská sada SDK pro Azure Cloud HSM
  • Kopie certifikátu vlastníka oddílu "PO.crt" na aplikačním serveru
  • Známá adresa vašeho HSM hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net.
  • Znalost přihlašovacích údajů uživatele crypto

Požadavky na úložiště certifikátů

  • účet Azure Blob Storage
  • Spravovaná identita pro přístup k úložišti

Důležité

Zákazníci, kteří používají jakoukoli verzi Windows Server, by měli nainstalovat nejnovější verzi redistribuovatelného balíčku Visual C++.

Nastavení účtu Azure Blob Storage

Než budete moct použít rozhraní API PKCS#11 pro úložiště certifikátů, musíte vytvořit účet Azure Blob Storage. Tento účet úložiště obsahuje objekty certifikátu PKCS#11, které se ukládají a načítají ve formátu JWS.

  1. Pokud chcete nastavit účet Azure Blob Storage pro úložiště certifikátů PKCS#11, přejděte na portál Azure a vytvořte nový účet úložiště.

  2. Po vytvoření účtu úložiště k němu přejděte na portálu Azure a v části Úložiště dat vyberte možnost Kontejnery. Vytvořte nový kontejner k ukládání objektů blob.

    Screenshot při vytváření kontejneru v Azure Blob Storage.

  3. Po vytvoření kontejneru vyhledejte adresu URL koncového bodu kontejneru tak, že přejdete na vlastnosti kontejneru. Tuto adresu URL budete potřebovat později.

    Screenshot vyhledání vlastností kontejneru v Azure Blob Storage.

  4. Ve vlastnostech kontejneru najdete uvedenou adresu URL kontejneru. Tato adresa URL se vyžaduje později v souboru azcloudhsm_application.cfg, aby aplikace PKCS#11 mohly vyhledat umístění úložiště pro objekty certifikátu.

    Screenshot adresy URL kontejneru ve vlastnostech úložiště Azure Blob.

Nastavení spravované identity přiřazené uživatelem pro přístup k úložišti

Dalším předpokladem úložiště certifikátů je vytvoření spravované identity přiřazené uživatelem. Tato identita má přiřazenou potřebnou roli pro přístup k účtu Azure Blob Storage a slouží k ověření z určeného virtuálního počítače správce.

Poznámka:

Následující příklad vytvoří a použije spravovanou identitu přiřazenou uživatelem. Spravovanou identitu přiřazenou systémem je možné také vytvořit a použít na virtuálním počítači.

  1. Pokud chcete vytvořit spravovanou identitu přiřazenou uživatelem pro úložiště certifikátů PKCS#11, přejděte na portál Azure a vytvořte novou identitu.

  2. Po úspěšném vytvoření spravované identity si poznamenejte ID klienta, které se vyžaduje později v souboru azcloudhsm_application.cfg, aby se povolilo ověřování k účtu úložiště z vašeho virtuálního počítače.

    Snímek obrazovky ID klienta spravované identity v portálu Azure.

  3. Přiřaďte odpovídající Azure roli, která udělí spravované identitě oprávnění ke čtení a zápisu do dříve vytvořeného účtu Blob Storage. Přiřaďte spravované identitě roli Přispěvatel dat objektů blob služby Storage, nastavte Obor na Úložiště a vyberte konkrétní prostředek účtu služby Storage.

    Snímek obrazovky přiřazení role Přispěvatel dat objektů blob služby Storage v Azure Portál.

    Snímek obrazovky s nastavením rozsahu pro roli Storage Blob Data Contributor.

  4. Přiřaďte spravovanou identitu přiřazenou uživatelem k virtuálnímu počítači, na kterém běží vaše aplikace úložiště certifikátů PKCS#11. Na portálu Azure přejděte k prostředku virtuálního počítače, vyberte oddíl Zabezpečení, vyberte Identitu a přidejte identitu přiřazenou uživatelem.

    Screenshot přidání uživatelsky přiřazené spravované identity k virtuálnímu počítači v portálu Azure.

    Screenshot nastavení identity virtuálního počítače v Azure portal.

Konfigurace klientských nástrojů Azure Cloud HSM

Vytvořte podpisový klíč úložiště

Pomocí následujícího azcloudhsm_util příkazu vytvořte pár podpisových klíčů RSA pro úložiště certifikátů PKCS#11 v jednom kroku. Ve výchozím nastavení generuje 2048bitový klíč RSA s veřejným exponentem 65537. Velikost klíče můžete podle potřeby upravit. Před spuštěním příkazu se ujistěte, že azcloudhsm_client je spuštěná jako služba na pozadí.

Zástupné symboly nahraďte následujícím způsobem:

  • PKCS11_S s uživatelským jménem uživatele kryptografie (například cu1)
  • PKCS11_P s heslem uživatele kryptografie (například user1234)
  • SIGNING_KEY_ID s ID požadované dvojice klíčů (toto ID se použije také později v azcloudhsm_application.cfg souboru).

Nastavte SIGNING_KEY_ID na náhodnou hodnotu pro tento příklad:

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%

Důležité

Ujistěte se, že každý z uzlů HSM vrací úspěch.

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

Aktualizace konfiguračních souborů

Aktualizace konfigurace aplikace

V souboru azcloudhsm_application.cfg budete muset aktualizovat následující parametry.

CERTSTORAGE_URL: Toto pole odkazuje na adresu URL kontejneru v rámci účtu Blob Storage zákazníka a slouží k ukládání informací o certifikátu. (např. https://chsmstorage.blob.core.windows.net/certificates)

CERTSTORAGE_SIGNING_KEYID: Toto pole odkazuje na ID přiřazené páru klíčů, které slouží k provádění kontrol integrity při operacích čtení a zápisu do úložiště (podepisování a ověřování).

UAMI_CLIENT_ID: Toto pole odkazuje na ID klienta spravované identity přiřazené uživatelem, které se používá k ověření účtu zákazníka Blob Storage. Pokud ponecháte pole prázdné, ověřování bude ve výchozím nastavení používat systémem přiřazenou spravovanou identitu.

Poznámka:

Tyto parametry platí jenom při spouštění operací s certifikáty v PKCS#11. Pro klíčové operace se nevyžaduje.

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  

Ověření konfigurace PKCS#11

Ukázkové ověření konfigurace PKCS#11 najdete v průvodci integrací 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

Další kroky