Tenemos un archivo PFX que cuando se usa en cualquier otro sistema Windows (Server 2008 R2, 7, 8) se instala bien. En 2 de mis servidores, la importación falla así:
CertUtil: -importPFX command FAILED: 0x80090016 (-2146893802)
CertUtil: Keyset does not exist
Originalmente importamos este PFX usando el complemento MMC, que parece funcionar, ya que no se informan errores y el certificado muestra que tiene una clave privada cuando se abre, pero con nuestra aplicación .NET recibimos un error acerca de no tener la Llave privada. Asumimos permisos de clave privada y agregamos los permisos correctos para nuestro grupo de aplicaciones. Esto no hizo ninguna diferencia. Hemos importado y eliminado varias veces intentando solucionar este problema.
Ahora hemos notado que el tamaño de los archivos agregados, cuando se realiza una importación a través de MMC, a la C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
carpeta era de solo 79 kb en los servidores que no funcionan, cuando generalmente se muestran como 2 kb en los sistemas donde sí funcionan.
Hice comprobaciones MD5 en los archivos, así que verifique que sean iguales (lo eran) y también los copié del sistema que no funcionaba (el archivo copiado original no es una exportación) y que todavía funciona en otros lugares.
¿Por qué esto estaría fallando?
Respuesta1
Cada búsqueda en Google que realizamos siempre arrojó la misma respuesta básica, algo relacionado con los permisos de las claves privadas... pero esto se basó en los mensajes de error que estábamos viendo.
Finalmente, localizamos el problema después de usarlo WinHttpCertCfg.exe
para Process Monitor
registrar el acceso a las carpetas y al registro.
Cuando uno de nuestros desarrolladores agregó algunos certificados de prueba, también cambió los permisos de seguridad en la C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
carpeta para que IIS pudiera acceder a la clave privada de los certificados que había importado, en lugar de otorgar permisos a través del complemento Certificados en MMC.
Solo agregó un nuevo permiso y no cambió los existentes, pero esto de alguna manera interrumpió la importación de certificados. Cuando se eliminaron los permisos adicionales, comenzó a funcionar nuevamente.
Dudo mucho que otros tengan el mismo problema, pero pensé que valía la pena responder en lugar de eliminar o cerrar la pregunta, ya que algún día podría ayudar a alguien más.