إضافة شهادة تطبيق إلى كتلة Service Fabric

يعنى هذا البرنامج النصي بطريقة إنشاء شهادة في Key Vault ومن ثم نشرها في إحدى مجموعات مقياس الآلة الظاهرية التي تعمل عليها مجموعتك. لا يستخدم هذا السيناريو Service Fabric مباشرة، ولكن يعتمد بدلاً من ذلك على Key Vault وعلى مجموعات مقياس الآلة الظاهرية.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

إذا لزم الأمر، فقم بتثبيت Azure PowerShell باستخدام التعليمات الموجودة في دليل Azure PowerShell،ثم قم بتشغيله Connect-AzAccount لإنشاء اتصال مع Azure.

إنشاء شهادة في Key Vault

$VaultName = ""
$CertName = ""
$SubjectName = "CN="

$policy = New-AzKeyVaultCertificatePolicy -SubjectName $SubjectName -IssuerName Self -ValidityInMonths 12
Add-AzKeyVaultCertificate -VaultName $VaultName -Name $CertName -CertificatePolicy $policy

أو تحميل شهادة موجودة في Key Vault

$VaultName= ""
$CertName= ""
$CertPassword= ""
$PathToPFX= ""

$bytes = [System.IO.File]::ReadAllBytes($PathToPFX)
$base64 = [System.Convert]::ToBase64String($bytes)
$jsonBlob = @{
   data = $base64
   dataType = 'pfx'
   password = $CertPassword
   } | ConvertTo-Json
$contentbytes = [System.Text.Encoding]::UTF8.GetBytes($jsonBlob)
$content = [System.Convert]::ToBase64String($contentbytes)

$SecretValue = ConvertTo-SecureString -String $content -AsPlainText -Force

# Upload the certificate to the key vault as a secret
$Secret = Set-AzKeyVaultSecret -VaultName $VaultName -Name $CertName -SecretValue $SecretValue

تحديث الملف التعريفي لمجموعات مقياس الآلة الظاهرية بالشهادة

$ResourceGroupName = ""
$VMSSName = ""
$CertStore = "My" # Update this with the store you want your certificate placed in, this is LocalMachine\My

# If you have added your certificate to the keyvault certificates, use
$CertConfig = New-AzVmssVaultCertificateConfig -CertificateUrl (Get-AzKeyVaultCertificate -VaultName $VaultName -Name $CertName).SecretId -CertificateStore $CertStore

# Otherwise, if you have added your certificate to the keyvault secrets, use
$CertConfig = New-AzVmssVaultCertificateConfig -CertificateUrl (Get-AzKeyVaultSecret -VaultName $VaultName -Name $CertName).Id -CertificateStore $CertStore

$VMSS = Get-AzVmss -ResourceGroupName $ResourceGroupName -VMScaleSetName $VMSSName

# If this KeyVault is already known by the virtual machine scale set, for example if the cluster certificate is deployed from this keyvault, use
$VMSS.virtualmachineprofile.osProfile.secrets[0].vaultCertificates.Add($CertConfig)

# Otherwise use
$VMSS = Add-AzVmssSecret -VirtualMachineScaleSet $VMSS -SourceVaultId (Get-AzKeyVault -VaultName $VaultName).ResourceId  -VaultCertificate $CertConfig

تحديث مجموعة مقياس الآلة الظاهرية

Update-AzVmss -ResourceGroupName $ResourceGroupName -VirtualMachineScaleSet $VMSS -VMScaleSetName $VMSSName

عند الرغبة في وضع الشهادة على أنواع عقد متعددة في كتلتك، يلزم تكرار الأجزاء الثانية والثالثة من هذا البرنامج النصي لكل نوع من العقد الذي يجب أن يملك الشهادة.

شرح السيناريو

يستخدم هذا البرنامج النصي الأوامر التالية: يرتبط كل أمر في الجدول بوثائق محددة للأمر.

الأمر ملاحظات
New-AzKeyVaultCertificatePolicy إنشاء سياسة في الذاكرة تمثل الشهادة
Add-AzKeyVaultCertificate نشر النهج في شهادات Vault الرئيسية
Set-AzKeyVaultSecret نشر السياسة إلى أسرار Vault الرئيسية
New-AzVmssVaultCertificateConfig إنشاء تكوين في الذاكرة يمثل الشهادة في VM
Get-AzVmss
Add-AzVmssSecret إضافة الشهادة إلى تعريف الذاكرة الخاص بمجموعة مقياس الآلة الظاهرية
تحديث AzVmss نشر التعريف الجديد لمجموعة مقياس الآلة الظاهرية

الخطوات التالية

لمزيد من المعلومات حول وحدةAzure PowerShell، يرجى الاطلاع على وثائق Azure PowerShell.

يمكن العثور على عينات Azure Powershell إضافية «لتصميم الخدمة» على Azure في عينات Azure PowerShell.