Permisos de confianza PrivateKey para certificados de "raíces de confianza" de máquinas locales

Tengo un certificado que hay que importar enCertificados / autoridades de certificación de raíz de confianza y tiene una clave privada correspondiente.

Para acceder realmente a la clave desde el código, debe configurar permisos de clave privada para otorgar acceso total a un grupo de aplicaciones IIS en particular. Entiendo totalmente eso, pero el problema es que esto solo se puede establecer en certificados personales y no en root de confianza.

He intentado agregar el mismo certificado al almacén personal y el siguiente código no se rompe:

<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>

La configuración de permisos en el certificado en el almacén personal funciona si cambioStoreName.Root aStoreName.My. Soy capaz de acceder allí. Pero no puedo acceder a él en root. Simplemente dice:

Keyset no existe

¿Alguna sugerencia?

Información Adicional

Si configuro la identidad de mis grupos de aplicaciones enSistema local (que tiene permisos totales sobre mi máquina) puedoexitosamente Acceso a clave privada. Entonces, la pregunta principal es cómo puedo configurar los permisos en la identidad de mi grupo de aplicaciones para tener acceso a las claves privadas de los certificados en el almacén Root de confianza.

¿Por qué confiar en la tienda de raíz y no personal?
Tengo un ensamblaje prefabricado que accede a este certificado en esta tienda en particular, por lo que simplemente colocar el certificado en la Tienda personal no será suficiente para mí. Es por eso que es imperativo establecer permisos de confianza en claves privadas de certificados raíz de confianza.

Respuestas a la pregunta(3)

Su respuesta a la pregunta