[英]Import BouncyCastle X509Certificate + Private Key (RSA) into Windows Certificate Store
我已經嘗試通過.NET X509Certificate2 + RSACryptoServiceProvider實例導入具有關聯的私鑰(RsaPrivateCrtKeyParameters)的基於BouncyCastle的X509Certificate實例,並將其保存到證書存儲區(.NET的X509Store,My / CurrentUser)中。
在證書存儲MMC管理單元中,似乎有一個與證書關聯的私鑰,並且我已經驗證了在磁盤上的適當位置創建了一個新的密鑰容器,但是當我嘗試導出證書時,我得到了可怕的消息“注意:找不到關聯的私鑰。只能導出證書”消息。
如果我運行certutil -user -repairstore我的THUMBPRINT , 則會出現以下錯誤:
錯誤:證書公用密鑰與存儲的密鑰集不匹配
從它吐出的其他信息中,我可以清楚地看到公用密鑰不同,並且證書參數公用密鑰的算法參數等於“ 05 00”,而不是容器公用密鑰的算法參數等於“ 05 00”。
實際上,我不知道有容器公鑰的概念,所以現在我很困惑。 有沒有人為此提供一些工作代碼?
我在這里的Cabadam答案中找到了解決方案: https ://social.msdn.microsoft.com/Forums/vstudio/en-US/ad01b2eb-1890-431a-86ae-e5da0e02b5b0/cryptographicexception-key-does-not-exist-when 嘗試連接到遠程服務
RSACryptoServiceProvider tempRcsp = (RSACryptoServiceProvider)DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)keyPair.Private);
RSACryptoServiceProvider rcsp = new RSACryptoServiceProvider(new CspParameters(1, "Microsoft Strong Cryptographic Provider", new Guid().ToString(), new CryptoKeySecurity(), null));
rcsp.ImportCspBlob(tempRcsp.ExportCspBlob(true));
dotnetCertificate2.PrivateKey = rcsp;
// Save the certificate to the X509Store
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.