簡體   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