我有一个包含3个密码保护的证书(链式结构)的文件(.p12),我已经将其安装在我的商店上。 我正在尝试将它们加载到我的代码中。 我从文件中加载它们的方法如下:
var clientCert = new X509Certificate2(@"myfile.p12", "mypassword");
如何从存储中加载数据并获得相同的结果?
我尝试过:
var computerCaStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
computerCaStore.Open(OpenFlags.ReadOnly);
var certificates = computerCaStore.Certificates.OfType<X509Certificate2>().ToList();
var certFromStore = certificates.Single(c => c.Thumbprint == thumbprintMerchant);
var newCert = new X509Certificate2(certFromStore.RawData, "mypassword");
clientCert
不是3个证书链接在一起,而只是具有私钥的证书。第二行无法产生您展示的错误,因此显然还有更多上下文。比如,您如何首先获得了certFromStore
。 - bartonjs`var computerCaStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
computerCaStore.Open(OpenFlags.ReadOnly);var certificates = computerCaStore.Certificates.OfType().ToList();
var clientCertificat1 = certificates.Single(c => c.Thumbprint == thumbprintMerchant);`
我使用指纹。 - Gabriel Andrei