es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ASP.NET X509Certificate2 acceso denegado cuando se aloja en IIS.

Tengo el siguiente fragmento de código ASP.NET para cargar un archivo pfx desde una carpeta:

var certificatePath = $"{HttpContext.Current.Server.MapPath("~")}{certFolderName}\\{certFileName}";
return new X509Certificate2(certificatePath, certPassword, X509KeyStorageFlags.MachineKeySet);

Este código funciona bien en el IIS local. Sin embargo, cuando se mueve al servidor de control de calidad (QA), arroja un error de Acceso Denegado como se muestra a continuación:

enter image description here

He revisado muchos foros y descubrí que esto es principalmente un problema de permisos al acceder a la carpeta C:\ProgramData\Microsoft\Crypto\RSA\MachineKey. He verificado el acceso a esta carpeta en nuestro servidor y todo está bien. El usuario “Everyone” tiene acceso de lectura y escritura. Por lo tanto, idealmente no debería haber ningún error de acceso denegado. Incluso le di acceso explícito de Control Total a la identidad del App Pool, pero aún así no funciona.
Estoy tratando de entender qué más podría causar este problema de acceso denegado.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en asp.net, iis, x509certificate, access-denied, x509certificate2, existen varias razones que podrían causar el error de Acceso Denegado en este escenario, incluso si los permisos de la carpeta parecen estar correctos. Algunas posibles razones son:

    • El certificado está protegido por contraseña y la contraseña es incorrecta. Asegúrese de utilizar la contraseña correcta para cargar el certificado.
    • La cuenta que ejecuta el grupo de aplicaciones que utiliza este código puede no tener permisos para leer la clave privada asociada con el certificado. Verifique los permisos del archivo de clave privada en el Administrador de Certificados de Windows (certmgr.msc) y otorgue los permisos necesarios a la cuenta que ejecuta el grupo de aplicaciones.
    • El archivo del certificado puede estar corrupto o ser inválido. Asegúrese de que el archivo del certificado sea válido y que la clave privada sea accesible.
    • El certificado no fue instalado correctamente en el servidor. Asegúrese de que el certificado esté instalado correctamente y asociado con la clave privada accesible por la cuenta del grupo de aplicaciones.
    • La identidad del grupo de aplicaciones no está configurada correctamente para utilizar la bandera MachineKeySet. Asegúrese de que la identidad del grupo de aplicaciones esté configurada para utilizar la bandera MachineKeySet verificando la configuración avanzada en IIS.

    Se recomienda realizar una verificación exhaustiva de todos los puntos mencionados anteriormente y solucionar cualquier problema encontrado antes de intentar cargar el certificado nuevamente desde la carpeta.

Comments are closed.