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
Lo script usa i seguenti comandi: 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.