Fügen Sie ein Anwendungszertifikat zu einem Service Fabric-Cluster hinzu
Dieses Beispielskript veranschaulicht Schritt für Schritt, wie Sie ein Zertifikat in Key Vault erstellen und dieses anschließend für eine der VM-Skalierungsgruppen bereitstellen, auf denen Ihr Cluster basiert. In diesem Szenario wird Service Fabric nicht direkt verwendet. Stattdessen werden Key Vault und VM-Skalierungsgruppen verwendet.
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.
Get-Help | Notizen |
---|---|
New-AzKeyVaultCertificatePolicy | Erstellt eine In-Memory-Richtlinie, die das Zertifikat darstellt. |
Add-AzKeyVaultCertificate | Stellt die Richtlinie für Key Vault-Zertifikate bereit. |
Set-AzKeyVaultSecret | Stellt die Richtlinie für Key Vault-Geheimnisse bereit. |
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.