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