如何在 azure keyvault 中上传或存储公钥 (.cer) 文件。当我尝试上传适用于 .pfx 文件的任何 .cer 文件时,从 keyvault 面板中出现错误。
最佳答案
加载公钥证书
Azure Key Vault Explorer允许您加载公钥证书(.cer 文件)。
证书使用该应用程序使用的“标准”格式作为 key 存储在 Key Vault 中(因为 Azure Key Vault 本身不支持 .cer 文件)。
访问公钥证书
将公钥加载到 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/