首页 > 解决方案 > 如何防止导入证书的私钥导出

问题描述

简短的问题:如何使导入的证书 (pfx)不可导出

我们有一个要导入 Azure KeyVault 的证书 (pfx) 文件。但是,我们无法使此证书不可导出。在颁发策略/高级策略配置下有一个选项,您可以在其中将“可导出私钥”设置为“否”,但似乎不适用于导入的证书。

我们使用的代码是:

        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-keyvault

解决方案


将证书导入 Azure Key Vault 时,可以将 设置exportable为 false KeyProperties,表示无法导出私钥。

更多细节,你可以参考这篇文章


推荐阅读