簡體   English   中英

無法導入具有私鑰的證書pfx從Windows Server 2012上的.net c#3.5存儲

[英]Cannot import certificate pfx with private key to store from .net c# 3.5 on windows server 2012

我正在嘗試從pfx文件中加載帶有私鑰的證書,並將其導入到LocalMachine / My(個人)證書存儲中。 我的代碼工作正常,但當我在商店中查看證書時說

“找不到關聯的私鑰”

而且,certutil說

“找不到用於解密的證書和私鑰”

奇怪的是,我的代碼在Windows 7開發盒上工作正常,但在Windows Server 2008 R2或2012上卻無法正常工作。同樣奇怪的是,如果我使用mmc手動導入pfx文件,則私鑰似乎可以正常保存。

這是我用來加載文件和導入的代碼:

// load the certificate from pfx file
X509Certificate2 cert = new X509Certificate2(filePath, pfxPassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);

// import to the store
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite); //tried MaxAllowed as well
store.Add(caCert);
store.Close();

有任何想法嗎? 有關背景信息,我還在較早的步驟中使用BouncyCastle在代碼中生成證書。 我遇到了一些問題,在該步驟持續私鑰但從回答解決了這個問題 另外,嘗試導入的代碼也以管理員身份運行。

距此問題有一點時間,這幫助我完善了調查范圍。 我在中跟蹤了導入證書的私鑰文件

C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
並發現該文件沒有所有者,也沒有設置權限(甚至對於管理員或系統也沒有)。 在商店中查看證書時,手動修改這些權限會導致“關聯私鑰”消息消失。

這導致我在嘗試將其導入商店之前修改代碼以設置對私鑰的權限: https : //stackoverflow.com/a/4902009/332610

萬歲!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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