viernes, 18 de junio de 2010

Pivate Key Corrupta en Windows 2003 Standar Edition

Hace poco tiempo, me llamó un colega ofreciéndome una asesoría corta y precisa, su empresa se dedica a vender certificados SSL, y un cliente estaba con problemas al momento de instalar su certificado.

Al momento de auditar el proceso de instalación del certificado SSL, verifiqué que estaba ejecutado el procedimiento tal cual lo indica Microsoft, es decir, para este caso tenía que acceder al IIS 6.0 y seguir los pasos que se describen en https://www.globalsign.com/support/csr/serversign_iis5.php.

Como estaba contratado por la empresa, a objeto de definir la problemática en cuestión, mi contraparte defendía su trabajo argumentando que el certificado estaba mal extendido.

Ante la duda planteada, decidí levantar un ambiente similar al de producción, verificando el procedimiento anteriormente descrito y junto con el operador de la empresa que vende certificados SSL, instalé un trial verificando cada uno de los elementos que estaba en juego no encontrándome con nada especial.

Al generar el informe, mi contraparte mantuvo su postura y luego de unos cuantos correos que iban y venían, procedí a solicitar una exportación del certificado + llave, lo cual se realiza mediante la opción export como se muestra en la imagen que a continuación se muestra:


Pero grande fue mi sorpresa que al ordenar lo mismo, mi contraparte mostraba la misma imagen pero con las opciones deshabilitadas:
  • Export the current certificate to a .pfx file.
  • Copy or Move the current certificate to a remote server site.















¿Qué diablos estaba pasando?

Investigando en la base de soporte de Microsoft, me encontré con un interesante artículo, donde se daba la razón de la deshabilitación de ambas opciones:

http://support.microsoft.com/kb/824035/en-us

This problem occurs because the Web site has been bound to a certificate that does not have a matching private key. If you try to export this certificate from the Certificates Microsoft Management Console (MMC), you do not have the option to export the private key. When you try to export the certificate, you receive the following warning message:
#You DON'T have a private key that corresponds to this certificate.
To troubleshoot SSL issues, use the new SSL Diagnostics tool. For more information, visit the following Microsoft Web site:

Era la primera señal, que daba la razón a mis dudas..,algo estaba pasando en la máquina de producción que era incapaz de exportar un certificado + llave privada.

Si no se podía exportar, entonces ante cualquier impacto en el server de producción se perdía el certificado y su llave, inutilizando por completo.

Me dirijo entonces a terreno, solicito una reunión de trabajo entre los actores involucrados y ante algunos tiras y aflojas, logré convencer a mi contraparte para que ejecutara la herramienta de diagnóstico SSLDiag, la cual arrojó el siguiente resultado:


You don't have a private key corresponds this certificate

Eureka!, habíamos dado en el clavo, el problema radicaba en la private key la cual por alguna misteriosa razón estaba corrupta.

Mi contraparte, recurrió entonces a reparar la llave con el comando certutil, pero sin éxito, así que mejor fue solicitar a la empresa que vende certificados web SSL que generase un nuevo certificado para luego instalarlo en una máquina limpia y de allí exportar un archivo .pfx donde iría el certificado + private key.

Así se hizo y se logró con éxito completar la tarea que me había sido encomendada, pero quedaba una interrogante..., ¿cómo fue posible que se produjera ese problema?

Investigando nuevamente, encontré dos posibles causas

1) Uso del comando IIRESET , el cual es ampliamente conocido y utilizado en los cursos oficiales Microsoft, donde en la base de datos de soporte Microsoft indican que no se debe utilizar, salvo en casos extremos cuando el sistema esta colgado o la CPU está al 100%, ya que podría ocasionar perdida de datos y en particular afectar a la llave privada.


2) Reinstalación de certificado antiguo, en el mismo instante que se esta esperando la llegada del certificado firmado por la autoridad.

Often users will make the request for a new certificate then reinstall an older cert while waiting on the new one, this breaks the link that IIS keeps with the location of the Private key


¿Qué habrá pasado en la máquina?, sólo el operador de turno lo sabe .. y nuestro Señor.

Amén.

No hay comentarios: