2014-01-17 86 views
1

我有一個證書上傳到Azure。我也在我的機器上丟失了原始證書(哎呀!)。從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:密鑰在指定狀態下無效。

是否可以導出它呢?

+0

這是可能的證書安裝標記爲不可導出。 – MikeWo

+0

你必須標記可導出的私鑰,否則你不能以你現在嘗試使用的方式導出一個PFX - http://stackoverflow.com/questions/9358129/cryptographicexception-key-not-valid-for-use-in -specified-state-while- – ramiramilu

+0

我已經添加了一個答案,指出正在查看Get-AzureCertificate PowerShell Cmdlet,但Gaurav正確地指出,如果您需要使用私鑰退回證書,則該方法無效。我已經刪除了答案,因爲它不正確。 – MikeWo

回答