Delen via


Een toepassingscertificaat toevoegen aan een Service Fabric-cluster

In dit Azure PowerShell-voorbeeldscript wordt uitgelegd hoe u een certificaat maakt in Key Vault en het vervolgens implementeert in een van de virtuele-machineschaalsets waarop uw cluster wordt uitgevoerd. In dit scenario wordt Service Fabric niet rechtstreeks gebruikt, maar is eerder afhankelijk van Key Vault en van virtuele-machineschaalsets.

Opmerking

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Installeer zo nodig de Azure PowerShell met behulp van de instructies in de Azure PowerShell-handleiding en voer deze uit Connect-AzAccount om een verbinding met Azure te maken.

Een certificaat maken in Key Vault

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

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

Of upload een bestaand certificaat naar 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

Profiel voor virtuele-machineschaalsets bijwerken met certificaat

$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

Virtuele machine-schaalset bijwerken

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

Als u het certificaat op meerdere knooppunttypen in uw cluster wilt plaatsen, moeten de tweede en derde onderdelen van dit script worden herhaald voor elk knooppunttype dat het certificaat moet hebben.

Uitleg van script

Dit script maakt gebruik van de volgende opdrachten: elke opdracht in de tabel bevat koppelingen naar opdrachtspecifieke documentatie.

Opdracht Opmerkingen
New-AzKeyVaultCertificatePolicy Hiermee maakt u een beleid in het geheugen dat het certificaat vertegenwoordigt
Add-AzKeyVaultCertificate Hiermee wordt het beleid geïmplementeerd in Key Vault-certificaten
Set-AzKeyVaultSecret Hiermee wordt het beleid geïmplementeerd in Key Vault Secrets
New-AzVmssVaultCertificateConfig Hiermee maakt u een in-memory configuratie die het certificaat in een VIRTUELE machine vertegenwoordigt
Get-AzVmss
Add-AzVmssSecret Voegt het certificaat toe aan de geheugenweergave van de virtuele machineschaalset
Update-AzVmss Implementeert de nieuwe definitie van de virtuele machineschaalset

Volgende stappen

Zie voor meer informatie over de Azure PowerShell-module de documentatie van Azure PowerShell.

Meer Voorbeelden van Azure PowerShell voor Azure Service Fabric vindt u in de Azure PowerShell-voorbeelden.