【发布时间】:2015-11-30 21:36:32
【问题描述】:
我正在尝试从 pfx 文件加载带有私钥的证书并将其导入 LocalMachine/My (Personal) 证书存储。我的代码工作正常,只是当我在商店中查看证书时它说
“找不到关联的私钥”
还有,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 在代码中生成证书。我在该步骤中遇到了一些保留私钥的问题,但通过this question 的答案得到了解决。尝试导入的代码也以管理员身份运行。
【问题讨论】:
-
@Raj 感谢您的指点,但我目前并未明确使用 CryptoAPI。我想知道是否有办法使用 c# System.Security.Cryptography.X509Certificates 或相关命名空间来做到这一点......
标签: c# .net bouncycastle pfx certificate-store