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