Как сохранить общедоступный сертификат (файл .cer) в Azure Key Vault

Как я могу загрузить или сохранить файл открытого ключа (.cer) в лазурном хранилище ключей. На панели keyvault выдает ошибку, когда я пытался загрузить любой файл .cer, где он работает для файла .pfx.


person Anup    schedule 21.04.2017    source источник


Ответы (2)


Вам следует подумать, является ли Key Vault подходящим решением для вашего сценария. Открытый ключ (по своей природе) не является конфиденциальными данными, вам не нужно безопасное место для его хранения. Вы можете использовать для этого универсальную службу хранения.

Если вам все еще нужно использовать Key Vault, вы можете сохранить его в секрете. Секреты Key Vault представляют собой последовательности октетов с максимальным размером 25 КБ каждая.

person Rohit Manohar    schedule 24.04.2017

Загрузка сертификатов открытого ключа

Обозреватель хранилища ключей Azure позволяет загружать сертификаты открытых ключей (файлы .cer).

Сертификаты хранятся в виде ключей в Key Vault с использованием «стандартного» формата, используемого этим приложением (поскольку файлы .cer изначально не поддерживаются Azure Key Vault).

Пример сертификата открытого ключа, хранящегося в Azure Key Vault Explorer

Доступ к сертификатам открытого ключа

После того, как вы загрузили открытые ключи в Azure Key Vault, к ним можно будет получить доступ программно следующим образом:

// load certificate based on format used by `Azure Key Vault Explorer`
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var certBundle = await kv.GetSecretAsync(secretIdentifier).ConfigureAwait(false);

byte[] certBytes = null;
if (certBundle.ContentType == "application/x-pkcs12")
{
    certBytes = Convert.FromBase64String(certBundle.Value);
}
else if (certBundle.ContentType == "application/pkix-cert")
{
    certBytes = certBundle?.Value.FromJson<PublicKeyCertificate>()?.Data;
}
if (certBytes != null && certBytes.Length > 0)
{
    return new X509Certificate2(certBytes,
        "",
        X509KeyStorageFlags.Exportable |
        X509KeyStorageFlags.MachineKeySet |
        X509KeyStorageFlags.PersistKeySet);
}
return null;

...

// class used to access public key certificate stored in Key Vault
public class PublicKeyCertificate
{
    public byte[] Data;
}
person Jonathan B.    schedule 05.01.2018
comment
Для тех, кто следует этим инструкциям. Установите Azure Vault с помощью https://aka.ms/ve?vault://[ENTER HERE YOUR VAULT NAME]. Затем в приложении Vault нажмите Добавить ›Сертификат Key Vault› Из файла. Выберите свой файл .cer и нажмите ОК. - person Troy Witthoeft; 07.10.2019