Udostępnij za pośrednictwem


Dodawanie certyfikatu aplikacji do klastra usługi Service Fabric

Ten przykładowy skrypt przeprowadzi cię przez proces tworzenia certyfikatu w usłudze Key Vault, a następnie wdrażania go w jednym z zestawów skalowania maszyn wirtualnych uruchomionych w klastrze. Ten scenariusz nie korzysta bezpośrednio z usługi Service Fabric, ale raczej zależy od usługi Key Vault i zestawów skalowania maszyn wirtualnych.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

W razie potrzeby zainstaluj program Azure PowerShell, korzystając z instrukcji w przewodniku programu Azure PowerShell, a następnie uruchom polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.

Tworzenie certyfikatu w usłudze Key Vault

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

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

Lub przekaż istniejący certyfikat do usługi 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

Aktualizowanie profilu zestawów skalowania maszyn wirtualnych przy użyciu certyfikatu

$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

Aktualizowanie zestawu skalowania maszyn wirtualnych

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

Jeśli chcesz, aby certyfikat umieszczony w wielu typach węzłów w klastrze był powtarzany w drugiej i trzeciej części tego skryptu dla każdego typu węzła, który powinien mieć certyfikat.

Objaśnienia dla skryptu

W tym skrypcie użyto następujących poleceń. Każde polecenie w tabeli stanowi link do dokumentacji polecenia.

Polecenie Uwagi
New-AzKeyVaultCertificatePolicy Tworzy zasady w pamięci reprezentujące certyfikat
Add-AzKeyVaultCertificate Wdraża zasady w certyfikatach usługi Key Vault
Set-AzKeyVaultSecret Wdraża zasady wpisów tajnych usługi Key Vault
New-AzVmssVaultCertificateConfig Tworzy konfigurację w pamięci reprezentującą certyfikat na maszynie wirtualnej
Get-AzVmss
Add-AzVmssSecret Dodaje certyfikat do definicji w pamięci zestawu skalowania maszyn wirtualnych
Update-AzVmss Wdraża nową definicję zestawu skalowania maszyn wirtualnych

Następne kroki

Aby uzyskać więcej informacji na temat modułu Azure PowerShell, zobacz dokumentację programu Azure PowerShell.

Dodatkowe przykłady programu Azure PowerShell dla usługi Azure Service Fabric można znaleźć w przykładach programu Azure PowerShell.