如何在天蓝色的密钥库中上载或存储公共密钥(.cer)文件。从keyvault面板,当我尝试上载适用于.pfx文件的任何.cer文件时,它给出了错误。
小智 7
您应该考虑 Key Vault 是否适合您的场景。公钥(本质上)不是机密数据,您不需要安全的地方来存储它。您可以为其使用通用存储服务。
如果您仍需要使用 Key Vault,则可以将其存储为机密。Key Vault 机密是八位位组序列,每个序列的最大大小为 25k 字节。
Azure Key Vault Explorer允许您加载公共密钥证书(.cer文件)。
证书使用该应用程序使用的“标准”格式作为密钥存储在密钥库中(因为Azure密钥保管库本身不支持.cer文件)。
将公钥加载到Azure密钥保管库后,可以按以下方式以编程方式对其进行访问:
// 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |