Een toepassingscertificaat toevoegen aan een Service Fabric-cluster

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

Notitie

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 volgens de instructies in de Azure PowerShell handleiding en voer vervolgens Connect-AzAccount uit om verbinding maken met Azure.

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 een bestaand certificaat uploaden 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

De virtuele-machineschaalset bijwerken

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

Als u het certificaat op meerdere typen knooppunten in uw cluster wilt plaatsen, moeten het tweede en derde gedeelte van dit script worden herhaald voor elk knooppunttype dat het certificaat moet bevatten.

Uitleg van het script

In dit script worden de volgende opdrachten gebruikt: Elke opdracht in de tabel is een koppeling naar specifieke documentatie over de opdracht.

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-geheimen
New-AzVmssVaultCertificateConfig Hiermee maakt u een configuratie in het geheugen dat het certificaat in een VM vertegenwoordigt
Get-AzVmss
Add-AzVmssSecret Hiermee wordt het certificaat toegevoegd aan de definitie in het geheugen van de virtuele-machineschaalset
Update-AzVmss Hiermee wordt de nieuwe definitie van de virtuele-machineschaalset geïmplementeerd

Volgende stappen

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

Aanvullende Azure PowerShell voorbeelden voor Azure Service Fabric vindt u in de Azure PowerShell voorbeelden.