Ręczne przerzucanie certyfikatu klastra usługi Service Fabric
Gdy certyfikat klastra usługi Service Fabric jest bliski wygaśnięcia, należy zaktualizować certyfikat. Przerzucanie certyfikatów jest proste, jeśli klaster został skonfigurowany do używania certyfikatów na podstawie nazwy pospolitej (zamiast odcisku palca). Pobierz nowy certyfikat z urzędu certyfikacji z nową datą wygaśnięcia. Certyfikaty z podpisem własnym nie są obsługiwane w przypadku produkcyjnych klastrów usługi Service Fabric w celu uwzględnienia certyfikatów generowanych podczas przepływu pracy tworzenia klastra w witrynie Azure Portal. Nowy certyfikat musi mieć taką samą nazwę pospolitą jak starszy certyfikat.
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.
Klaster usługi Service Fabric automatycznie użyje zadeklarowanego certyfikatu z dalszą datą wygaśnięcia w przyszłości; jeśli na hoście jest zainstalowany więcej niż jeden certyfikat weryfikacji. Najlepszym rozwiązaniem jest użycie szablonu usługi Resource Manager do aprowizowania zasobów platformy Azure. W przypadku środowiska nieprodukcyjnego następujący skrypt może służyć do przekazywania nowego certyfikatu do magazynu kluczy, a następnie instalowania certyfikatu w zestawie skalowania maszyn wirtualnych:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser -Force
$SubscriptionId = <subscription ID>
# Sign in to your Azure account and select your subscription
Login-AzAccount -SubscriptionId $SubscriptionId
$region = "southcentralus"
$KeyVaultResourceGroupName = "keyvaultgroup"
$VaultName = "cntestvault2"
$certFilename = "C:\users\sfuser\sftutorialcluster20180419110824.pfx"
$certname = "cntestcert"
$Password = "!P@ssw0rd321"
$VmssResourceGroupName = "sfclustertutorialgroup"
$VmssName = "prnninnxj"
# Create new Resource Group
New-AzResourceGroup -Name $KeyVaultResourceGroupName -Location $region
# Get the key vault. The key vault must be enabled for deployment.
$keyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $KeyVaultResourceGroupName
$resourceId = $keyVault.ResourceId
# Add the certificate to the key vault.
$PasswordSec = ConvertTo-SecureString -String $Password -AsPlainText -Force
$KVSecret = Import-AzKeyVaultCertificate -VaultName $vaultName -Name $certName -FilePath $certFilename -Password $PasswordSec
$CertificateThumbprint = $KVSecret.Thumbprint
$CertificateURL = $KVSecret.SecretId
$SourceVault = $resourceId
$CommName = $KVSecret.Certificate.SubjectName.Name
Write-Host "CertificateThumbprint :" $CertificateThumbprint
Write-Host "CertificateURL :" $CertificateURL
Write-Host "SourceVault :" $SourceVault
Write-Host "Common Name :" $CommName
Set-StrictMode -Version 3
$ErrorActionPreference = "Stop"
$certConfig = New-AzVmssVaultCertificateConfig -CertificateUrl $CertificateURL -CertificateStore "My"
# Get current VM scale set
$vmss = Get-AzVmss -ResourceGroupName $VmssResourceGroupName -VMScaleSetName $VmssName
# Add new secret to the VM scale set.
$vmss.VirtualMachineProfile.OsProfile.Secrets[0].VaultCertificates.Add($certConfig)
# Update the VM scale set
Update-AzVmss -ResourceGroupName $VmssResourceGroupName -Name $VmssName -VirtualMachineScaleSet $vmss -Verbose
Uwaga
Oblicza wpisy tajne zestawu skalowania maszyn wirtualnych nie obsługują tego samego identyfikatora zasobu dla dwóch oddzielnych wpisów tajnych, ponieważ każdy wpis tajny jest unikatowym zasobem w wersji.
Następne kroki
- Dowiedz się więcej o zabezpieczeniach klastra.
- Aktualizowanie certyfikatów klastra i zarządzanie nimi