![](/img/trans.png)
[英]c# How to create X509 Certificate from certificate and key or pfx or p7b
[英]C#, Unable to import .p7b certificate to windows store
我正在尝试将扩展名为.p7b的证书(smime)导入到Windows应用商店。
这是当前的代码
X509Certificate2 cert = new X509Certificate2(@"C:\test_public_cert.p7b");
X509Store store = new X509Store(StoreName.AddressBook, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
它给了我一个“无法找到原始签名者”的错误。
备注:此代码正在使用.cer扩展(DER和Base 64)。
有人请帮助确定可能的根条款吗?
谢谢。
PS。 VS2010,Windows Server 2008 R2
Edit1:test_public_cert.p7b是通过mmc控制台从另一台服务器上的公钥导出的。
我在过去使用.p7b扩展名遇到了这个问题。 我发现有两种方法可以解决这个问题。 最后,我最终使用数字1.数字2是您通过导出到.cer已经找到的东西。 您也可以尝试使用选项3,但我不确定这是否完全有用。
1.使用SignedCms而不是X509Certificate类。
有关详细信息,请参阅Enveloped PKCS#7签名
2.加载.p7b只包含证书文件,该文件可能不包含私钥。 在生成它的服务器上安装私钥,然后将其导出为.pfx文件并将其移动到要使用的服务器。
3.由于.p7b文件包含整个证书链而不仅仅是一个证书,您可以尝试使用follow方法将其添加到Windows应用商店。
X509Certificate2Collection certCollection = new X509Certificate2Collection();
certCollection.Import(@"C:\test_public_cert.p7b");
X509Store store = new X509Store(StoreName.AddressBook, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.AddRange(certCollection);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.