如何在azure keyvault中上传或存储公钥(.cer)文件。在keyvault面板中,当我尝试上传任何.cer文件时,它会出错。它适用于.pfx文件。
答案 0 :(得分:3)
Azure Key Vault Explorer允许您加载公钥证书(.cer文件)。
使用该应用程序使用的“标准”格式将证书存储为密钥保管库中的密钥(因为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;
}
答案 1 :(得分:1)
您应该考虑Key Vault是否适合您的方案。公钥(本质上)不是机密数据,您不需要安全的地方来存储它。您可以使用通用存储服务。
如果您仍需要使用密钥保管库,则可以将其存储为密码。密钥保管库密码是八位字节序列,每个序列的最大大小为25k字节。