Fügen Sie ein Anwendungszertifikat zu einem Service Fabric-Cluster hinzu

Dieses Azure PowerShell-Beispielskript führt Sie durch das Erstellen eines Zertifikats im Key Vault und stellen es dann auf einem der Skalierungssätze des virtuellen Computers bereit, auf denen Ihr Cluster ausgeführt wird. In diesem Szenario wird Service Fabric nicht direkt verwendet, sondern baut auf Key Vault und Virtual Machine Scale Sets auf.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Installieren Sie bei Bedarf Azure PowerShell mithilfe der Anleitung im Azure PowerShell-Handbuch, und führen Sie dann Connect-AzAccount aus, um eine Verbindung mit Azure herzustellen.

Erstellen eines Zertifikats in Key Vault

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

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

Oder: Hochladen eines vorhandenen Zertifikats 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

Aktualisieren des Profils von VM-Skalierungsgruppen mit dem Zertifikat

$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

Aktualisieren der VM-Skalierungsgruppe

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

Wenn Sie das Zertifikat auf mehreren Knotentypen in Ihrem Cluster platzieren möchten, müssen der zweite und dritte Teil dieses Skripts für jeden Knotentyp wiederholt werden, der über das Zertifikat verfügen soll.

Erläuterung des Skripts

Das Skript verwendet die folgenden Befehle: Jeder Befehl in der Tabelle ist mit der zugehörigen Dokumentation verknüpft.

Befehl Notizen
New-AzKeyVaultCertificatePolicy Erstellt eine im Speicher befindliche Richtlinie, die das Zertifikat darstellt.
Add-AzKeyVaultCertificate Stellt die Richtlinie für Key Vault-Zertifikate bereit.
Set-AzKeyVaultSecret Wendet die Richtlinie auf Key Vault-Secrets an.
New-AzVmssVaultCertificateConfig Erstellt eine In-Memory-Konfiguration, die das Zertifikat auf einem virtuellen Computer darstellt.
Get-AzVmss
Add-AzVmssSecret Fügt das Zertifikat der In-Memory-Definition der VM-Skalierungsgruppe hinzu.
Update-AzVmss Stellt die neue Definition der VM-Skalierungsgruppe bereit.

Nächste Schritte

Weitere Informationen zum Azure PowerShell-Modul finden Sie in der Azure PowerShell-Dokumentation.

Zusätzliche Azure PowerShell-Beispiele für Azure Service Fabric finden Sie unter Azure PowerShell-Beispiele.