如何防止导入证书的私钥导出
How to prevent Private Key export for imported Certificate
小问题:如何制作导入证书 (pfx) 不可导出?
我们有一个要导入到 Azure KeyVault 中的证书 (pfx) 文件。但是,我们无法使此证书不可导出。有一个选项,在Issuance Policy/Advanced Policy Configuration 下,你可以设置'Exportable Private Key' 到'No' 但是好像不能申请导入的证书。
我们使用的代码是:
var keyVaultClient = CreateKeyVaultClient();
var name = "non-exportable-cert";
var secret = await keyVaultClient.GetSecretAsync("azure-key-vault-url", name);
var cert = new X509Certificate2(Convert.FromBase64String(secret.Value));
// cert.HasPrivateKey = always True.
使用 Windows 证书存储时,我们必须将证书明确标记为可导出。我们在 Azure Key Vault 中根本没有这个选项。
当我们在 Key Vault 中生成证书时,此选项会起作用,这会导致 cert.HasPrivateKey 设置为 False。
不支持这种情况还是我们遗漏了什么?提前致谢!
当您将证书导入到 Azure Key Vault 时,您可以将 KeyProperties
中的 exportable
设置为 false,这表示无法导出私钥。
更多的细节,你可以参考这篇article。
小问题:如何制作导入证书 (pfx) 不可导出?
我们有一个要导入到 Azure KeyVault 中的证书 (pfx) 文件。但是,我们无法使此证书不可导出。有一个选项,在Issuance Policy/Advanced Policy Configuration 下,你可以设置'Exportable Private Key' 到'No' 但是好像不能申请导入的证书。
我们使用的代码是:
var keyVaultClient = CreateKeyVaultClient();
var name = "non-exportable-cert";
var secret = await keyVaultClient.GetSecretAsync("azure-key-vault-url", name);
var cert = new X509Certificate2(Convert.FromBase64String(secret.Value));
// cert.HasPrivateKey = always True.
使用 Windows 证书存储时,我们必须将证书明确标记为可导出。我们在 Azure Key Vault 中根本没有这个选项。
当我们在 Key Vault 中生成证书时,此选项会起作用,这会导致 cert.HasPrivateKey 设置为 False。
不支持这种情况还是我们遗漏了什么?提前致谢!
当您将证书导入到 Azure Key Vault 时,您可以将 KeyProperties
中的 exportable
设置为 false,这表示无法导出私钥。
更多的细节,你可以参考这篇article。