Ajouter un certificat d’application à un cluster Service Fabric
Cet exemple de script explique comment créer un certificat dans Key Vault, puis comment le déployer sur l’un des groupes de machines virtuelles identiques où s’exécute votre cluster. Ce scénario n’utilise pas directement Service Fabric, il dépend plutôt de Key Vault et des groupes de machines virtuelles identiques.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Si nécessaire, installez Azure PowerShell à l’aide des instructions figurant dans le Guide Azure PowerShell, puis exécutez Connect-AzAccount
pour créer une connexion avec Azure.
Créer un certificat dans Key Vault
$VaultName = ""
$CertName = ""
$SubjectName = "CN="
$policy = New-AzKeyVaultCertificatePolicy -SubjectName $SubjectName -IssuerName Self -ValidityInMonths 12
Add-AzKeyVaultCertificate -VaultName $VaultName -Name $CertName -CertificatePolicy $policy
Ou charger un certificat existant dans 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
Mettre à jour le profil des groupes de machines virtuelles identiques avec un certificat
$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
Mettre à jour le groupe de machines virtuelles identiques
Update-AzVmss -ResourceGroupName $ResourceGroupName -VirtualMachineScaleSet $VMSS -VMScaleSetName $VMSSName
Si vous souhaitez que le certificat soit placé sur plusieurs types de nœud de votre cluster, les deuxième et troisième parties de ce script doivent être répétées pour chaque type de nœud ayant le certificat.
Explication du script
Ce script utilise les commandes suivantes : Chaque commande du tableau renvoie à une documentation spécifique.
Commande | Notes |
---|---|
New-AzKeyVaultCertificatePolicy | Crée une stratégie en mémoire représentant le certificat |
Add-AzKeyVaultCertificate | Déploie la stratégie sur Certificats Key Vault |
Set-AzKeyVaultSecret | Déploie la stratégie sur Secrets Key Vault |
New-AzVmssVaultCertificateConfig | Crée une configuration en mémoire représentant le certificat dans une machine virtuelle |
Get-AzVmss | |
Add-AzVmssSecret | Ajoute le certificat à la définition en mémoire du groupe de machines virtuelles identiques |
Update-AzVmss | Déploie la nouvelle définition du groupe de machines virtuelles identiques |
Étapes suivantes
Pour plus d’informations sur le module Azure PowerShell, consultez Documentation Azure PowerShell.
Vous trouverez des exemples supplémentaires de scripts Azure PowerShell pour Azure Service Fabric dans Exemples Azure PowerShell.