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.