Как программно импортировать pfx с цепочкой сертификатов в хранилище сертификатов?

Я пытаюсь программно импортировать сертификат X509 (pfx / PKCS # 12) в хранилище сертификатов моей локальной машины. Этот конкретный сертификат имеет цепочку сертификатов, путь сертификации выглядит примерно так:

  • Корневой сертификат CA
    • ЦС сертификата организации
      • ЦС сертификата организации 2
        • Мой сертификат

Код, который я использую, выглядит следующим образом:

cert = new X509Certificate2(pathToCert, password);

if (cert != null)
{
    var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
    store.Open(OpenFlags.ReadWrite);
    if (!store.Certificates.Contains(cert))
    {
        store.Add(cert);
    }
}

Этот код действительно импортирует сертификат, однако, похоже, он игнорирует цепочку. Если я проверяю сертификат в магазине, путь сертификации показывает только:

  • Мой сертификат

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

21
задан Edwin de Koning 6 February 2012 в 14:17
поделиться