В этой статье блога мы рассмотрим различные способы загрузки сертификата с закрытым ключом из Azure Key Vault. Azure Key Vault — это облачная служба, которая позволяет безопасно хранить криптографические ключи, секреты и сертификаты и управлять ими. Мы рассмотрим примеры кода с использованием различных Azure SDK, Azure CLI и Azure PowerShell.
Метод 1. Использование Azure SDK для.NET
Azure SDK для.NET предоставляет удобный способ доступа к Azure Key Vault и управления им. Чтобы загрузить сертификат с закрытым ключом с помощью этого SDK, вы можете использовать следующий фрагмент кода:
using Azure.Identity;
using Azure.Security.KeyVault.Certificates;
public async Task<X509Certificate2> LoadCertificateFromKeyVault()
{
var keyVaultName = "<your-key-vault-name>";
var certificateName = "<your-certificate-name>";
var credential = new DefaultAzureCredential();
var certificateClient = new CertificateClient(new Uri($"https://{keyVaultName}.vault.azure.net/"), credential);
var certificate = await certificateClient.GetCertificateAsync(certificateName);
var certificateSecret = await certificateClient.GetCertificatePolicyAsync(certificateName);
var privateKeyBytes = Convert.FromBase64String(certificateSecret.Value.SecretProperties.VersionId);
var certificateWithPrivateKey = new X509Certificate2(privateKeyBytes);
return certificateWithPrivateKey;
}
Метод 2. Использование Azure CLI
Azure CLI — это инструмент командной строки, который позволяет взаимодействовать с ресурсами Azure. Чтобы загрузить сертификат с закрытым ключом с помощью Azure CLI, вы можете выполнить следующую команду:
az keyvault certificate show --vault-name <your-key-vault-name> --name <your-certificate-name> --query "cer" -o tsv | base64 --decode > certificate.cer
az keyvault secret show --vault-name <your-key-vault-name> --name <your-certificate-name> --query "value" -o tsv | base64 --decode > privatekey.pem
Метод 3. Использование Azure PowerShell
Azure PowerShell предоставляет мощную среду сценариев для управления ресурсами Azure. Чтобы загрузить сертификат с закрытым ключом с помощью Azure PowerShell, вы можете использовать следующий скрипт:
$KeyVaultName = "<your-key-vault-name>"
$CertificateName = "<your-certificate-name>"
$Certificate = Get-AzKeyVaultCertificate -VaultName $KeyVaultName -Name $CertificateName
$CertificatePolicy = Get-AzKeyVaultCertificatePolicy -VaultName $KeyVaultName -Name $CertificateName
$PrivateKeyBytes = [System.Convert]::FromBase64String($CertificatePolicy.SecretProperties.VersionId)
$CertificateWithPrivateKey = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($PrivateKeyBytes)
return $CertificateWithPrivateKey
В этой статье мы рассмотрели три различных метода загрузки сертификата с закрытым ключом из Azure Key Vault. Мы рассмотрели примеры кода с использованием Azure SDK для.NET, Azure CLI и Azure PowerShell. В зависимости от предпочитаемого вами языка программирования и инструментов вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Используя Azure Key Vault, вы можете обеспечить безопасность и целостность сертификатов и закрытых ключей в приложениях Azure.