Menambahkan sertifikat aplikasi ke kluster Service Fabric

Sampel skrip ini berjalan melalui cara membuat sertifikat di Key Vault dan kemudian menyebarkannya ke salah satu skala komputer virtual yang mengatur kluster Anda berjalan. Skenario ini tidak menggunakan Service Fabric secara langsung, melainkan bergantung pada Key Vault dan pada set skala komputer virtual.

Catatan

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Jika diperlukan, pasang Azure PowerShell menggunakan instruksi yang ditemukan di panduan Azure PowerShell, lalu jalankan Connect-AzAccount untuk membuat sambungan dengan Azure.

Membuat sertifikat di Key Vault

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

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

Atau unggah sertifikat yang ada ke dalam 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

Memperbarui profil set skala komputer virtual dengan sertifikat

$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

Memperbarui set skala komputer virtual

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

Jika Anda ingin sertifikat ditempatkan pada beberapa jenis simpul di kluster Anda, bagian kedua dan ketiga dari skrip ini harus diulang untuk setiap jenis simpul yang seharusnya memiliki sertifikat.

Penjelasan skrip

Skrip ini menggunakan perintah berikut: Setiap perintah dalam tabel ditautkan ke dokumentasi khusus perintah.

Perintah Catatan
Baru-AzKeyVaultCertificatePolicy Membuat kebijakan dalam memori yang mewakili sertifikat
Tambahkan-AzKeyVaultCertificate Menyebarkan kebijakan ke Sertifikat Key Vault
Atur-AzKeyVaultSecret Menyebarkan kebijakan ke Rahasia Key Vault
Baru-AzVmssVaultCertificateConfig Membuat konfigurasi dalam memori yang mewakili sertifikat dalam komputer virtual
Dapatkan-AzVmss
Tambahkan-AzVmssSecret Menambahkan sertifikat ke definisi dalam memori dari set skala komputer virtual
Perbarui-AzVmss Menyebarkan definisi baru dari set skala komputer virtual

Langkah berikutnya

Untuk informasi selengkapnya tentang modul Azure PowerShell, lihat dokumentasi Azure PowerShell.

Sampel Azure Powershell tambahan untuk Azure Service Fabric dapat ditemukan dalam sampel Azure PowerShell.