Импорт всех сертификатов, содержащихся в файле .p12 - PullRequest
4 голосов
/ 05 октября 2011

У меня есть файл .p12 для моего приложения ASP.NET для подключения к веб-службе через HTTPS.

Я пытаюсь импортировать файл .p12 в Локальный компьютер / Мой магазин. Файл .p12 содержит более одного сертификата . Один содержит закрытый ключ, а другой - сертификат CA для завершения цепочки.

В настоящее время я использую метод Import объекта `System.Security.Cryptography.X509Certificates.X509Certificate2, чтобы импортировать этот файл в хранилище. Сегодня я заметил, что сертификат CA не импортируется, с использованием этого метода импортируется только основной сертификат, содержащий закрытый ключ. После дальнейшего просмотра MSDN я нашел следующее правило относительно метода импорта:

Обратите внимание, что сертификат PFX / PKCS12 может содержать более одного сертификата. В этом случае используется первый сертификат, связанный с закрытым ключом, или, если закрытый ключ не найден, используется первый сертификат.

Может кто-нибудь предложить мне другой способ программного импорта файла .p12, который фактически импортирует все сертификаты в файле? Я использую PowerShell для выполнения этой функции.

1 Ответ

3 голосов
/ 22 октября 2011

Вместо использования метода X509Certificate2.Import используйте метод X509Certficate2Collection.Import. Он выдаст вам все сертификаты из файла .p12.

Затем вы можете добавить каждый сертификат в соответствующее хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...