Вы можете получить объект коллекции, содержащий сертификаты в вашем файле .pfx , используя класс X509Certificate2Collection
... вот пример кода на 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.