您应该能够通过使用该类来获取包含.pfxX509Certificate2Collection
文件中证书的集合对象...这是一些 C# 示例代码:
string certPath = <YOUR PFX FILE PATH>;
string certPass = <YOUR PASSWORD>;
// Create a collection object and populate it using the PFX file
X509Certificate2Collection collection = new X509Certificate2Collection();
collection.Import(certPath, certPass, X509KeyStorageFlags.PersistKeySet);
然后你可以遍历集合:
foreach (X509Certificate2 cert in collection)
{
Console.WriteLine("Subject is: '{0}'", cert.Subject);
Console.WriteLine("Issuer is: '{0}'", cert.Issuer);
// Import the certificates into X509Store objects
}
根据证书的类型(客户端证书、中间 CA 证书、根 CA),您需要打开正确的证书存储(作为X509Store
对象)来导入它。
查看X509Store
文档:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx
StoreName
以及枚举中的不同成员:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspx
据我了解,您希望StoreName.My
用于包含私钥的客户端证书、StoreName.CertificateAuthority
中间 CA 证书和StoreName.Root
根 CA 证书。