Penyimpanan sertifikat Azure Cloud HSM

Azure Cloud HSM mendukung penyimpanan sertifikat melalui PKCS#11, memungkinkan aplikasi mengelola sertifikat X.509 bersama kunci. Tutorial ini menyediakan instruksi langkah demi langkah untuk menyiapkan prasyarat penyimpanan sertifikat, termasuk konfigurasi Azure Blob Storage dan Identitas Terkelola. Untuk detail tentang menggunakan API PKCS#11 untuk mengelola sertifikat, lihat API PKCS#11 untuk Penyimpanan Sertifikat.

Prasyarat

Prasyarat berikut diperlukan untuk mendukung penyimpanan sertifikat dengan Azure Cloud HSM. Merujuk pada Panduan Onboarding Azure Cloud HSM untuk Penginstalan dan Konfigurasi SDK jika penyebaran HSM belum selesai.

Persyaratan sistem

  • Sumber daya Azure Cloud HSM telah disebarkan, diinisialisasi, dan dikonfigurasi.
  • SDK Klien Azure Cloud HSM
  • Salinan sertifikat pemilik partisi "PO.crt" di server aplikasi.
  • Alamat yang diketahui dari HSM Anda hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net.
  • Pengetahuan tentang kredensial Pengguna Kripto

Prasyarat penyimpanan sertifikat

  • Akun Azure Blob Storage
  • Identitas Terkelola untuk mengakses penyimpanan

Penting

Pelanggan yang menggunakan versi Windows Server apa pun harus menginstal versi terbaru Visual C++ Redistributable.

Menyiapkan akun Azure Blob Storage

Sebelum dapat menggunakan API PKCS#11 untuk Penyimpanan Sertifikat, Anda harus membuat Akun Azure Blob Storage. Akun penyimpanan ini akan menyimpan objek sertifikat PKCS#11, yang disimpan dan diambil dalam format JWS.

  1. Untuk menyiapkan akun Azure Blob Storage untuk penyimpanan sertifikat PKCS#11, buka portal Azure dan buat Akun Storage baru.

  2. Setelah berhasil membuat Akun Penyimpanan, navigasikan ke akun tersebut di portal Azure dan pilih Kontainer di bawah penyimpanan Data. Di sini, Anda membuat kontainer baru untuk menyimpan blob.

    Screenshot pembuatan sebuah kontainer di Azure Blob Storage.

  3. Setelah membuat kontainer, temukan URL titik akhir kontainer dengan menavigasi ke properti Kontainer. URL ini diperlukan nanti.

    Screenshot mengenai cara mencari properti kontainer di Azure Blob Storage.

  4. Di properti Kontainer, Anda dapat menemukan URL kontainer yang tercantum. URL ini diperlukan nanti dalam file azcloudhsm_application.cfg untuk mengaktifkan aplikasi PKCS#11 untuk menemukan lokasi penyimpanan untuk objek sertifikat.

    Screenshot URL kontainer di Azure Blob Storage properties.

Menyiapkan identitas terkelola yang ditetapkan pengguna untuk mengakses penyimpanan

Prasyarat berikutnya untuk penyimpanan sertifikat adalah membuat Identitas Terkelola yang Ditetapkan Pengguna. Identitas ini diberikan peran yang diperlukan untuk mengakses Akun Azure Blob Storage dan digunakan untuk mengautentikasi dari VM Admin yang Anda tentukan.

Nota

Contoh berikut membuat dan menggunakan Identitas Terkelola yang Ditetapkan Pengguna. Identitas Terkelola yang Ditetapkan Sistem juga dapat dibuat dan digunakan pada VM.

  1. Untuk membuat Identitas Terkelola yang Ditugaskan kepada Pengguna untuk penyimpanan sertifikat PKCS#11, buka portal Azure dan buat identitas baru.

  2. Setelah berhasil membuat Identitas Terkelola, catat ID Klien, yang diperlukan nanti dalam file azcloudhsm_application.cfg untuk mengaktifkan autentikasi ke akun penyimpanan dari VM Anda.

    Cuplikan layar Identitas Terkelola ID Klien di portal Azure.

  3. Langkah selanjutnya adalah menetapkan peran Azure yang sesuai untuk memberikan izin Identitas Terkelola untuk membaca dan menulis ke Akun Blob Storage yang dibuat sebelumnya. Tetapkan peran Kontributor Data Blob Penyimpanan untuk Identitas Terkelola, atur Lingkup ke Penyimpanan dan pilih sumber daya Akun Penyimpanan tertentu.

    Tangkapan layar penetapan peran Kontributor Data Penyimpanan Blob di portal Azure.

    Cuplikan layar pengaturan cakupan untuk peran Penyumbang Data Blob Penyimpanan.

  4. Langkah selanjutnya adalah menetapkan Identitas Terkelola yang Ditetapkan Pengguna ke VM yang akan menjalankan aplikasi penyimpanan sertifikat PKCS#11 Anda. Navigasi ke sumber daya VM Anda di portal Azure, buka bagian Keamanan, pilih Identitas, dan tambahkan Identitas yang Ditetapkan Pengguna.

    Cuplikan layar penambahan Identitas Terkelola yang Ditugaskan oleh Pengguna ke VM di portal Azure.

    Screenshot pengaturan Identitas VM di portal Azure.

Mengonfigurasi alat klien Azure Cloud HSM

Membuat kunci penandatanganan penyimpanan

Perintah azcloudhsm_util berikut dapat digunakan untuk membuat pasangan kunci penandatanganan RSA untuk penyimpanan sertifikat PKCS#11 dalam satu langkah. Secara default, ini menghasilkan kunci RSA 2048-bit dengan eksponen publik 65537. Anda dapat mengubah ukuran kunci sesuai kebutuhan. Sebelum menjalankan perintah, pastikan bahwa azcloudhsm_client berjalan sebagai layanan di latar belakang.

Ganti placeholder dengan yang berikut:

  • PKCS11_S dengan nama pengguna Pengguna Kripto Anda. (misalnya, cu1)
  • PKCS11_P dengan kata sandi Pengguna Kriptografi Anda. (misalnya, user1234)
  • SIGNING_KEY_ID dengan ID pasangan kunci yang diinginkan (ID ini juga akan digunakan nanti dalam file azcloudhsm_application.cfg Anda)

ID Kunci Penandatanganan Untuk contoh ini, kita akan mengatur ID Kunci Penandatanganan ke nilai acak.

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%

Penting

Pastikan setiap simpul HSM menghasilkan hasil sukses.

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

Memperbarui file konfigurasi

Memperbarui konfigurasi aplikasi

Anda harus memperbarui parameter berikut dalam file azcloudhsm_application.cfg.

CERTSTORAGE_URL: Bidang ini mengacu pada URL kontainer dalam Akun Blob Storage pelanggan dan digunakan untuk menyimpan informasi sertifikat. (misalnya https://chsmstorage.blob.core.windows.net/certificates)

CERTSTORAGE_SIGNING_KEYID: Bidang ini mengacu pada ID yang ditetapkan ke pasangan kunci, yang digunakan untuk melakukan pemeriksaan integritas selama operasi baca dan tulis ke penyimpanan (penandatanganan dan verifikasi).

UAMI_CLIENT_ID: Bidang ini mengacu pada ID Klien identitas terkelola yang Ditetapkan Pengguna, yang digunakan untuk mengautentikasi ke Akun Blob Storage pelanggan. Jika dibiarkan kosong, autentikasi akan default menggunakan Identitas Terkelola yang Ditetapkan Sistem.

Nota

Parameter ini hanya berlaku saat menjalankan operasi sertifikat di PKCS#11. Ini tidak diperlukan untuk operasi utama.

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  

Memvalidasi konfigurasi PKCS#11

Lihat Panduan Integrasi PKCS#11 untuk validasi berbasis sampel konfigurasi PKCS#11 Anda.

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

Langkah selanjutnya