azure-keyvault - 如何在 Azure Key Vault 中存储公共(public)证书(.cer 文件)

标签 azure-keyvault

如何在 azure keyvault 中上传或存储公钥 (.cer) 文件。当我尝试上传适用于 .pfx 文件的任何 .cer 文件时,从 keyvault 面板中出现错误。

最佳答案

加载公钥证书

Azure Key Vault Explorer允许您加载公钥证书(.cer 文件)。

证书使用该应用程序使用的“标准”格式作为 key 存储在 Key Vault 中(因为 Azure Key Vault 本身不支持 .cer 文件)。

Example public key cert as stored by 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;
}

关于azure-keyvault - 如何在 Azure Key Vault 中存储公共(public)证书(.cer 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536579/

相关文章:

azure - 如何使用 Azure CLI 配置 "Kubernetes KMS plugin for Azure Key Vault"?

azure - keyVaultClient - 获取 secret

linux - .net core kestrel服务无法使用配置

Azure Powershell 安全 secret 值

c# - 检索 KeyVault Secret 时出现问题

Azure 数据工厂链接服务错误 - 无法从 key 保管库获取 secret

powershell - 将备份管理服务添加到 Azure powershell 中的 keyvault

java - 通过 Java 中的 MSI 读取 Azure key 保管库 secret

azure - 在 Azure Key Vault 配置 ASP.NET Core 3.1 后,以调试方式启动我的网站无法正常工作

Azure Keyvault Sign API - 响应正文 “value” 编码格式