Přidání certifikátu aplikace do clusteru Service Fabric

Tento ukázkový skript vás provede vytvořením certifikátu v Key Vault a jeho následným nasazením do jedné ze škálovacích sad virtuálních počítačů, na které cluster běží. Tento scénář nepoužívá Service Fabric přímo, ale závisí spíše na Key Vault a na škálovacích sadách virtuálních počítačů.

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

V případě potřeby nainstalujte Azure PowerShell pomocí pokynů v průvodci Azure PowerShell a pak spuštěním příkazu Connect-AzAccount vytvořte připojení k Azure.

Vytvoření certifikátu v Key Vault

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

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

Nebo nahrajte existující certifikát do 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

Aktualizace profilu škálovacích sad virtuálních počítačů pomocí certifikátu

$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

Aktualizace škálovací sady virtuálních počítačů

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

Pokud chcete certifikát umístit na více typů uzlů v clusteru, měla by se druhá a třetí část tohoto skriptu opakovat pro každý typ uzlu, který by měl mít certifikát.

Vysvětlení skriptu

Tento skript používá následující příkazy: Každý příkaz v tabulce odkazuje na příslušnou část dokumentace.

Příkaz Poznámky
New-AzKeyVaultCertificatePolicy Vytvoří zásadu v paměti představující certifikát.
Add-AzKeyVaultCertificate Nasadí zásadu do Key Vault certifikátů.
Set-AzKeyVaultSecret Nasadí zásadu do tajných kódů Key Vault.
New-AzVmssVaultCertificateConfig Vytvoří konfiguraci v paměti představující certifikát ve virtuálním počítači.
Get-AzVmss
Add-AzVmssSecret Přidá certifikát do definice škálovací sady virtuálních počítačů v paměti.
Update-AzVmss Nasadí novou definici škálovací sady virtuálních počítačů.

Další kroky

Další informace o modulu Azure PowerShellu najdete v dokumentaci k Azure PowerShellu.

Další ukázky Azure PowerShell pro Azure Service Fabric najdete v ukázkách Azure PowerShell.