繁体   English   中英

C#,无法将.p7b证书导入Windows商店

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM