Разрешения доверия PrivateKey для сертификатов «Надежные корни» локального компьютера

У меня есть сертификат, который должен быть импортирован вCertificates/Trusted Root Certification Authorities и имеет соответствующий закрытый ключ.

Чтобы на самом деле получить доступ к ключу из кода, необходимо установить разрешения для закрытого ключа, чтобы предоставить полный доступ к определенному пулу приложений IIS. Я полностью понимаю это, но проблема в том, что это может быть установлено только в личных сертификатах, а не в доверенных корневых.

Я пытался добавить тот же сертификат в Личное хранилище, и следующий код не сломался:

<code>X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);

foreach (X509Certificate2 cert in store.Certificates)
{
    if (cert.HasPrivateKey)
    {
        // access private key here
    }
}

store.Close();
</code>

Установка разрешений на сертификат в личном магазине работает, если я изменяюStoreName.Root вStoreName.My, Я могу получить к нему доступ. Но я не могу получить к нему доступ в корне. Это просто говорит:

Keyset does not exist

Какие-либо предложения?

Additional information

Если я установлю свою идентификацию пулов приложений наLocal System (который имеет общие разрешения для моей машины) я могуsuccessfully доступ к закрытому ключу. Поэтому основной вопрос заключается в том, как настроить разрешения для удостоверения пула приложений, чтобы иметь доступ к закрытым ключам для сертификатов в хранилище доверенных корней.

Why trusted root store and not personal?
I have a pre-built assembly that accesses this certificate in this particular store, so simply placing the certificate in Personal store won't do the trick for me. That's why setting trust permissions on private keys of trusted root certificates is imperative.

Ответы на вопрос(3)

Ваш ответ на вопрос