【问题标题】:Export a certificate from Azure cloud service从 Azure 云服务导出证书
【发布时间】: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


【解决方案1】:

在您的 Web/Worker 角色上启用远程桌面,连接到它,然后您可以使用 Mimikatz 恢复证书(包括私钥),即使它被标记为不可导出

Mimikatz(指南为法语):http://blog.gentilkiwi.com/mimikatz/crypto#exportCertificates

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多