Incorporación de un certificado de aplicación a un clúster de Service Fabric
Este script de ejemplo le muestra cómo crear un certificado en Key Vault y, a continuación, cómo implementarlo en uno de los conjuntos de escalado de máquinas virtuales en los que se ejecuta el clúster. En este escenario no se usa Service Fabric directamente, sino que depende de Key Vault y de los conjuntos de escalado de máquinas virtuales.
Nota:
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Si es necesario, instale Azure PowerShell con la instrucción que se encuentra en la guía de Azure PowerShell y luego ejecute Connect-AzAccount
para crear una conexión con Azure.
Creación de un certificado en Key Vault
$VaultName = ""
$CertName = ""
$SubjectName = "CN="
$policy = New-AzKeyVaultCertificatePolicy -SubjectName $SubjectName -IssuerName Self -ValidityInMonths 12
Add-AzKeyVaultCertificate -VaultName $VaultName -Name $CertName -CertificatePolicy $policy
Carga de un certificado existente en 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
Actualización del perfil de los conjuntos de escalado de máquinas virtuales con certificado
$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
Actualización del conjunto de escalado de máquinas virtuales
Update-AzVmss -ResourceGroupName $ResourceGroupName -VirtualMachineScaleSet $VMSS -VMScaleSetName $VMSSName
Si desea que el certificado esté colocado en varios tipos de nodo del clúster, la segunda y tercera parte de este script se debería repetir con cada tipo de nodo que deba incluir el certificado.
Explicación del script
Este script usa los siguientes comandos: Cada comando de la tabla crea un vínculo a documentación específica del comando.
Get-Help | Notas |
---|---|
New-AzKeyVaultCertificatePolicy | Crea una directiva en memoria que representa el certificado |
Add-AzKeyVaultCertificate | Implementa la directiva en certificados de Key Vault. |
Set-AzKeyVaultSecret | Implementa la directiva en secretos de Key Vault. |
New-AzVmssVaultCertificateConfig | Crea una configuración en memoria que representa el certificado de una máquina virtual |
Get-AzVmss | |
Add-AzVmssSecret | Agrega el certificado a la definición en memoria del conjunto de escalado de máquinas virtuales |
Update-AzVmss | Implementa la nueva definición del conjunto de escalado de máquinas virtuales |
Pasos siguientes
Para obtener más información sobre el módulo de Azure PowerShell, consulte la documentación de Azure PowerShell.
Puede ver otros ejemplos de Azure PowerShell para Azure Service Fabric en los ejemplos de Azure PowerShell.