Azure Cloud HSM sertifika depolama alanı

Azure Cloud HSM, PKCS#11 aracılığıyla sertifika depolamayı destekleyerek uygulamaların anahtarlarla birlikte X.509 sertifikalarını yönetmesini sağlar. Bu öğretici, Azure Blob Depolama ve yönetilen kimlik yapılandırması dahil olmak üzere sertifika depolama önkoşullarını ayarlamaya yönelik adım adım yönergeler sağlar. Sertifikaları yönetmek için PKCS#11 API'lerini kullanma hakkında ayrıntılı bilgi için bkz. Sertifika depolama için PKCS#11 API'sini kullanma.

Prerequisites

Azure Cloud HSM ile sertifika depolamayı desteklemek için aşağıdaki önkoşullar gereklidir. HSM dağıtımı tamamlanmadıysa SDK yükleme ve yapılandırma için Azure Cloud HSM ekleme kılavuzuna bakın.

Sistem gereksinimleri

  • Azure Bulut HSM kaynağı dağıtılır, başlatılır ve yapılandırılır.
  • Azure Cloud HSM İstemci SDK'sı
  • Uygulama sunucusunda bölüm sahibi sertifikası "PO.crt" kopyası.
  • HSM'nizin hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.netbilinen adresi.
  • Kripto Kullanıcı kimlik bilgileri hakkında bilgi

Sertifika depolama önkoşulları

  • Azure Blob Depolama hesabı
  • Depolamaya erişmek için yönetilen kimlik

Önemli

Windows Server herhangi bir sürümünü kullanan müşterilerin Visual C++ Redistributable'ın en son sürümünü yüklemesi gerekir.

Azure Blob Depolama hesabı ayarlama

Sertifika depolama için PKCS#11 API'sini kullanabilmeniz için bir Azure Blob Depolama hesabı oluşturmanız gerekir. Bu depolama hesabı, JWS biçiminde kaydedilen ve alınan PKCS#11 sertifika nesnelerini barındırıyor.

  1. PKCS#11 sertifika depolaması için bir Azure Blob Depolama hesabı ayarlamak için Azure portalına gidin ve yeni bir Depolama Hesabı oluşturun.

  2. Depolama hesabı oluşturulduktan sonra Azure portalında buna gidin ve Veri depolama'nın altında Kapsayıcılar'ı seçin. Blobları depolamak için yeni bir kapsayıcı oluşturun.

    Azure Blob Depolama'da bir kapsayıcı oluşturma ekran görüntüsü

  3. Kapsayıcıyı oluşturduktan sonra Kapsayıcı özellikleri'ne giderek kapsayıcı uç noktası URL'sini bulun. Bu URL daha sonra gereklidir.

    Azure Blob Depolama.

  4. Kapsayıcı özellikleri bölümünde kapsayıcı URL'sini listelenmiş olarak bulabilirsiniz. PkCS#11 uygulamalarının sertifika nesnelerinin depolama konumunu bulmasını sağlamak için bu URL daha sonra azcloudhsm_application.cfg dosyasında gereklidir.

    Azure Blob Depolama özelliklerinde konteyner URL'sinin ekran görüntüsü.

Depolamaya erişmek için kullanıcı tarafından atanan yönetilen kimliği ayarlama

Sertifika depolama için bir sonraki önkoşul , Kullanıcı Tarafından Atanan Yönetilen Kimlik oluşturmaktır. Bu kimliğe Azure Blob Depolama Hesabına erişmek için gerekli rol verilir ve belirlenen Yönetici VM'nizden kimlik doğrulaması yapmak için kullanılır.

Uyarı

Aşağıdaki örnek, Kullanıcı Tarafından Atanan Yönetilen Kimlik oluşturur ve kullanır. Sistem Tarafından Atanan Yönetilen Kimlik de vm'de oluşturulabilir ve kullanılabilir.

  1. PKCS#11 sertifika depolaması için User Tarafından Atanan Yönetilen Kimlik oluşturmak için Azure portalına gidin ve yeni bir kimlik oluşturun.

  2. Yönetilen Kimliği başarıyla oluşturduktan sonra, vm'nizden depolama hesabında kimlik doğrulamasını etkinleştirmek için daha sonra azcloudhsm_application.cfg dosyasında gerekli olan İstemci Kimliğini not edin.

    Azure portalında Yönetilen Kimlik İstemci Kimliği Ekran Görüntüsü.

  3. Yönetilen kimliğe daha önce oluşturulmuş Blob Depolama hesabını okuma ve yazma izni vermek için uygun Azure rolünü atayın. Yönetilen kimliğe Storage Blob Data Contributor rolünü atayın, Scope değerini Storage olarak ayarlayın ve belirli depolama hesabı kaynağını seçin.

    Azure portalında Depolama Blobu Veri Katkıcısı rolünü atama ekran görüntüsü.

    Depolama Blobu Veri Katkıda Bulunanı rolünün kapsamını ayarlamanın ekran görüntüsü.

  4. PkCS#11 sertifika depolama uygulamanızı çalıştıran VM'ye Kullanıcı Tarafından Atanan Yönetilen Kimliği atayın. Azure portalında VM kaynağınıza gidin, Güvenlik bölümünü seçin, Kimlik'i seçin ve kullanıcı tarafından atanan kimliği ekleyin.

     Azure portalda VM'ye Kullanıcı Tarafından Atanan Yönetilen Kimlik ekleme ekran görüntüsü.

    Azure portalundaki VM Kimlik ayarlarının ekran görüntüsü.

Azure Cloud HSM istemci araçlarını yapılandırma

Depolama için imzalama anahtarı oluşturun

Tek adımda PKCS#11 sertifika depolama alanı için bir RSA imzalama anahtarı çifti oluşturmak için aşağıdaki azcloudhsm_util komutu kullanın. Varsayılan olarak, 65537 genel üssüne sahip bir 2048 bit RSA anahtarı oluşturur. Anahtar boyutunu gerektiği gibi değiştirebilirsiniz. Komutu çalıştırmadan önce arka planda hizmet olarak çalıştığından emin olun azcloudhsm_client .

Yer tutucuları aşağıdaki gibi değiştirin:

  • PKCS11_S şifreleme kullanıcı kullanıcı adınızla (örneğin, cu1)
  • PKCS11_P şifreleme kullanıcı parolanızla (örneğin, user1234)
  • SIGNING_KEY_ID istenen anahtar çifti kimliğiyle (bu kimlik dosyanızın azcloudhsm_application.cfg ilerleyen bölümlerinde de kullanılır)

Bu örnek için rastgele bir değere ayarlayın SIGNING_KEY_ID :

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%

Önemli

Her bir HSM düğümünün başarı döndürdüğünden emin olun.

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

Yapılandırma dosyalarını güncelleştirme

Uygulama yapılandırmasını güncelleştirme

azcloudhsm_application.cfg dosyasında aşağıdaki parametreleri güncelleştirmeniz gerekir.

CERTSTORAGE_URL: Bu alan, müşterinin Blob Depolama Hesabı içindeki kapsayıcının URL'sine başvurur ve sertifika bilgilerini depolamak için kullanılır. (örneğin https://chsmstorage.blob.core.windows.net/certificates)

CERTSTORAGE_SIGNING_KEYID: Bu alan, depolama alanına okuma ve yazma işlemleri (imzalama ve doğrulama) sırasında bütünlük denetimleri gerçekleştirmek için kullanılan anahtar çiftine atanan kimliği ifade eder.

UAMI_CLIENT_ID: Bu alan, müşterinin Blob Depolama Hesabında kimlik doğrulaması yapmak için kullanılan Kullanıcı Tarafından Atanan Yönetilen Kimliğin İstemci Kimliği'ne başvurur. Boş bırakılırsa, kimlik doğrulaması varsayılan olarak Sistem Tarafından Atanan Yönetilen Kimlik kullanılır.

Uyarı

Bu parametreler yalnızca PKCS#11'de sertifika işlemleri çalıştırılırken geçerlidir. Anahtar İşlemleri için gerekli değildir.

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 yapılandırmasını doğrulama

PKCS#11 yapılandırmanızın örnek tabanlı doğrulaması için PKCS#11 tümleştirme kılavuzuna bakın.

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

Sonraki Adımlar