miércoles, 9 de junio de 2010

Administración de certificados digitales en Windows

En la anterior entrada, vimos como crear certificados mediante comandos. Ahora tendremos que tratar con la gestión de dichos certificados en Windows, es decir, como instalarlos en el almacén de certificados del sistema, para que los servicios y los clientes puedan utilizarlos.

1. Almacén de certificados de Windows.

Windows utiliza como almacén de certificados del sistema el registro (dentro de HKEY_LOCAL_MACHINE o HKEY_LOCAL_USER en la ruta SOFTWARE\Microsoft\SystemCertificates\My\Certificates). Afortunadamente no es necesario tener que modificar manualmente el registro para instalar o quitar certificados, y estas tareas suelen realizarse a través de un complemento de la consola de administración (mmc). Los pasos a seguir para mostrar la consola con los certificados están en el siguiente enlace: Mostrar el visor de certificados.

Una alternativa al uso de esta consola es el uso de comandos (como hicimos para la generación de certificados).

Por ejemplo, la herramienta certmgr.exe que viene con el Windows SDK. Aunque esta herramienta no sirve por si sola, ya que, no permite la gestión de ficheros .pfx (los utilizados para distribuir la clave privada), para este tipo de ficheros utilizaremos otra herramienta: WinHttpCertCfg.

El almacén de certificados de Windows está organizado en categorías (personal, Entidades emisoras raíz de confianza, …) en función del propósito del certificado. Por tanto, a la hora de instalar los certificados, tendremos que tener en cuenta para que van a ser utilizados. Además, el almacén de certificados de Windows distingue entre certificados de la maquina local y los de la cuenta del usuario.

Cada certificado debe ser instalado de una forma, dependiendo del papel que vaya a realizar (si es una CA o no, si es certificado de cliente o servidor).

Una vez terminados todos los pasos, podemos utilizar la consola para comprobar que los certificados están instalados correctamente.

2. Instalar el certificado de CA como entidad raíz de confianza.

Este paso debe realizarse tanto en las maquinas cliente como en las maquinas de servidor. Para las maquinas de servidor hay que ejecutar el siguiente comando (se instala en la cuenta del equipo):

certmgr -add RootCA.cer -s -r localmachine root

Para las maquinas de cliente hay que ejecutar el siguiente comando (se instala en la cuenta del usuario):

certmgr -add RootCA.cer -s -r currentUser root

El argumento –add indica que se va a añadir el certificado indicado por el fichero que le sigue, el argumento –s indica que vamos a instalar el certificado en un almacén del sistema (esto es necesario para poder utilizar -r) y –r indica la localización en el registro de Windows (localmachine para HKEY_LOCAL_MACHINE y currentUser para HKEY_LOCAL_USER). Finalmente, el último argumento indica la ubicación donde se van a almacenar los certificados (dentro del almacén de certificados), en este caso, dado que es un certificado para ser utilizado como entidad raíz de confianza, ponemos root.


3. Instalar el certificado de cliente.

En las maquinas de cliente, se deberán instalar los certificados asociados a las cuentas de los usuarios que vayan a acceder al servicio mediante el script:

winhttpcertcfg -i CertificadoCliente.pfx -c CURRENT_USER\My -a NombreMaquina -p 1

-i indica el nombre del fichero de clave privada del certificado, –c la localización del registro donde se va a instalar (en este caso la cuenta del usuario), –a el nombre de la maquina y –p el password con el que se guardó el certificado (en nuestro ejemplo es: “1”).

Para instalar en las maquinas de servidor, es necesario cambiar la localización donde se va a instalar el certificado (en este caso la cuenta de la maquina), ya que el servidor desconoce cuales son las cuentas del usuario. Utilizaremos el siguiente script:

winhttpcertcfg -i CertificadoCliente.pfx -c LOCAL_MACHINE\My -a NombreMaquina -p 1

4. Instalar el certificado de servidor.

Este certificado solo es necesario instalarlo en la maquina de servidor, el script es muy similar al del caso anterior, solo cambia el nombre del fichero del certificado a instalar:

winhttpcertcfg -i NombreMaquina.pfx -c LOCAL_MACHINE\My -a NombreMaquina -p 1


5. Gestión con la consola.


Otra posibilidad es realizar estas operaciones manualmente mediante la consola. Para ello, hay que abrir la consola de gestión (mmc), para ello acceder al menú de Inicio, pulsar “Ejecutar” y escribir mmc. Se abre la consola, en el menú seleccionar “Archivo” e ir a “Agregar o quitar complemento”, se abre un cuadro de dialogo modal, pulsar el botón agregar para añadir el complemento de “Certificados”, se solicita el tipo de certificados que se quiere administrar (en este ejemplo: cuenta de usuario cuando se quiere utilizar CURRENT_USER o de equipo cuando se quiere utilizar LOCAL_MACHINE).


Para ver las entidades emisoras raíz de confianza, hay que acceder a la carpeta “Entidades emisoras raíz de confianza” (lo que corresponde al root del comando certmgr), mientras que para acceder a los certificados propios, hay que ir a la carpeta “Personal” (lo que corresponde a My del comando winhttpcertcfg).


6. Enlaces externos.


Mostrar el visor de certificados

Descripción de certmgr

Descarga de WinHttpCertCfg.

Descripción de WinHttpCertCfg

1 comentario: