【发布时间】:2014-01-17 11:44:28
【问题描述】:
我已将证书上传到 Azure。我的机器上的原始证书也丢失了(哎呀!)。
现在我需要恢复从 Azure 云服务导出的证书。
在云服务上下文中运行的这段代码获得了正确的证书:
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);
var certificate = store.Certificates
.Cast<X509Certificate2>()
.SingleOrDefault(c => string.Equals(c.Thumbprint, "<THUMBPRINT>", StringComparison.OrdinalIgnoreCase));
但是当我尝试导出证书(X509Certificate2.Export)时,它会抛出异常:
System.Security.Cryptography.CryptographicException:密钥在指定状态下无效。
还是可以导出吗?
【问题讨论】:
-
证书可能已安装标记为不可导出。
-
您必须将私钥标记为可导出,否则您无法以您现在尝试的方式导出 PFX - stackoverflow.com/questions/9358129/…
-
我添加了一个答案,表明正在查看 Get-AzureCertificate PowerShell Cmdlet,但 Gaurav 正确地指出,如果您需要使用私钥退出证书,这将不起作用。我已经删除了答案,因为它不正确。
-
@ramiramilu 如何使其可导出?
-
我不认为你可以。这些证书由 Windows Azure 平台在启动 VM 时安装。如果它安装它们标记为不可导出,那么您无能为力。您可能需要创建不同的证书。不确定。
标签: .net azure x509certificate