Sdílet prostřednictvím


Ruční vrácení certifikátu clusteru Service Fabric

Pokud se blíží vypršení platnosti certifikátu clusteru Service Fabric, musíte certifikát aktualizovat. Vrácení certifikátu je jednoduché, pokud byl cluster nastavený tak, aby používal certifikáty založené na běžném názvu (místo kryptografického otisku). Získejte nový certifikát od certifikační autority s novým datem vypršení platnosti. Certifikáty podepsané svým držitelem nepodporují produkční clustery Service Fabric, aby zahrnovaly certifikáty generované během pracovního postupu vytváření clusteru webu Azure Portal. Nový certifikát musí mít stejný běžný název jako starší certifikát.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Cluster Service Fabric automaticky použije deklarovaný certifikát s dalším datem vypršení platnosti. pokud je na hostiteli nainstalováno více než jeden ověřený certifikát. Osvědčeným postupem je použití šablony Resource Manageru ke zřízení prostředků Azure. V neprodukčním prostředí je možné použít následující skript k nahrání nového certifikátu do trezoru klíčů a následné instalaci certifikátu do škálovací sady virtuálních počítačů:

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

Poznámka:

Výpočty tajných kódů škálovací sady virtuálních počítačů nepodporují stejné ID prostředku pro dva samostatné tajné kódy, protože každý tajný kód je jedinečným prostředkem s verzí.

Další kroky