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