簡體   English   中英

將BouncyCastle X509證書+私鑰(RSA)導入Windows證書存儲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM