Aggiungere la certificazione dell'applicazione a un cluster di Service Fabric.

Questo script di esempio illustra come creare un certificato in Key Vault e distribuirlo in uno dei set di scalabilità di macchine virtuali in cui viene eseguito il cluster. Questo scenario non usa direttamente Service Fabric, ma dipende invece da Key Vault e dai set di scalabilità di macchine virtuali.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Se necessario, installare Azure PowerShell usando l'istruzione presente nella Guida di Azure PowerShell e quindi eseguire Connect-AzAccount per creare una connessione con Azure.

Creare un certificato in Key Vault

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

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

In alternativa, caricare un certificato esistente in 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

Aggiornare il profilo dei set di scalabilità di macchine virtuali con il certificato

$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

Aggiornare il set di scalabilità di macchine virtuali

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

Se si vuole che il certificato venga inserito in più tipi di nodo nel cluster, la seconda e la terza parte di questo script devono essere ripetute per ogni tipo di nodo che dovrà avere il certificato.

Spiegazione dello script

Questo script usa i comandi seguenti: Ogni comando della tabella include collegamenti alla documentazione specifica del comando.

Comando Note
New-AzKeyVaultCertificatePolicy Crea un criterio in memoria che rappresenta il certificato
Add-AzKeyVaultCertificate Distribuisce il criterio in Certificati di Key Vault
Set-AzKeyVaultSecret Distribuisce il criterio in Segreti di Key Vault
New-AzVmssVaultCertificateConfig Crea una configurazione in memoria che rappresenta il certificato in una macchina virtuale
Get-AzVmss
Add-AzVmssSecret Aggiunge il certificato alla definizione in memoria del set di scalabilità di macchine virtuali
Update-AzVmss Distribuisce la nuova definizione del set di scalabilità di macchine virtuali

Passaggi successivi

Per altre informazioni sul modulo Azure PowerShell, vedere la documentazione di Azure PowerShell.

Altri esempi di Azure PowerShell per Azure Service Fabric sono disponibili negli esempi di Azure PowerShell.