# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Habilitar certificados de cliente para un website en IIS 6.0


Habilitar los certificados de cliente a nivel de website permite que aquel que conecte al sitio web necesite la utilización de un certificado seguro para poder acceder. De este modo podremos proteger los accesos al sitio web y sus recursos frente a accesos no deseados y permitir especificamente a un grupo concreto el acceso.

En este caso los vamos a activar a nivel de website, de modo que accederemos a la consola de gestión de IIS (Internet Information Services Manager) y desplegaremos el servidor local, después Web Sites y pincharemos con el botón derecho en el website a configurar seleccionando Properties. Una vez dentro accederemos a la pestaña “Directory Security” y pincharemos en “Edit” dentro de la sección de comunicaciones seguras (Secure Communications).

IIS certificados cliente

Una vez dentro encontraremos las siguientes opciones. Lo primero que debemos activar es el requerimiento de un canal seguro SSL (Require Secure Channel SSL). De este modo forzamos al usuario a conectar vía HTTPS. Posteriormente podemos configurar si habilitamos los certificados de cliente o si obligamos a usarlo. La última opción forzará al usuario a utilizarlo mientras que la segunda lo permitirá. Finalmente podemos habilitar una lista de certificados de confianza (Enable Certificate Trust List) a la cual podremos añadir los certificados a utilizar para la comunicación con el cliente, certificados CA intermedios, etc.

IIS certificados cliente

Finalmente reiniciamos el website y ya debería estar habilitada la funcionalidad de certificados de cliente.

Generar un certificado SSL propio con openssl


Gracias a OpenSSL, tenemos la posibilidad de crear certificados SSL “self-signed“, es decir, firmados por nosotros mismos para encriptar las conexiones a un sitio web bajo Apache. Normalmente, para un servidor en producción lo lógico es utilizar un certificado SSL firmado por una entidad autorizada y confiable “Trusted Certificate Authority“, no obstante, en servidores beta o de pruebas es muy útil para utilizar conexión segura sin necesitar un SSL autorizado.

Lo primero que debemos hacer es instalar mod_ssl y openssl para activar el soporte SSL en Apache (podemos hacerlo con yum, apt…):

yum install mod_ssl openssl

Una vez instalados los módulos, procederemos con la creación del certificado. En primera instancia generamos la llave privada(private-key):

openssl genrsa -out cert.key 1024

Ahora generamos el CSR (Certificate Signing Request), usando la key generada antes:

openssl req -new -key cert.key -out cert.csr

Y ahora generamos el certificado en sí utilizando la key y el CSR:

openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt

Ahora para mayor comodidad podéis mover los tres ficheros (cert.csr, cert.crt y cert.key) a la ruta donde guardéis los SSL, por ejemplo /etc/ssl/

Solamente falta configurar el sitio web o el servidor web entero para que utilice el SSL, si es solo para un sitio web bajo virtualhost, añadir lo siguiente dentro del <virtualhost>, son las rutas al certificado y su key correspondiente:

SSLCertificateFile /etc/ssl/cert.crt
SSLCertificateKeyFile /etc/ssl/cert.key

Si fuerais a hacerlo para todo el servidor web, lo normal es cambiar los valores indicados anteriormente en el fichero de configuración general del ssl, que suele ser:

/etc/httpd/conf.d/ssl.conf

Una vez hecho esto, reiniciad apache y ya deberíais navegar correctamente bajo SSL, tened en cuenta que navegadores como firefox o explorer no reconocerán el SSL ya que está firmado por nosotros mismos y no una firma autorizada, no obstante, aceptad el certificado y trabajad normalmente.

Para más información sobre OpenSSL, opciones de comando y personalización del certificado:

http://www.openssl.org/docs/apps/openssl.html

Cómo exportar e importar un certificado SSL en IIS 6.0


Hoy voy a explicar el modo de exportar e importar un certificado SSL de un sitio web, de un servidor a otro gracias a la exportación con ficheros .pfx:

1. Acceder al servidor Windows 2003 con IIS 6.0 con tu usuario administrador.

2. Abrir el IIS Manager.

3. Ir al website que tiene el certificado SSL instalado.

4. Botón derecho y pinchamos en propiedades

5. Acceder a la pestaña “Directory Security Tab“.

6. Click en el botón “Server Certificate” .

7. Ahora estaremos en el asistente de certificados, pinchamos en siguiente saltando la ventana de bienvenida.

8. Ahora encontraremos un asistente:

Asistente certificado SSL IIS 6.0

Asistente certificado SSL IIS 6.0

9. Llegados a este punto, seleccionaremos la opción “Export the current certificate to a .pfx file” para exportar el certificado a un fichero .pfx. Si dicha opción no aparece disponible, es debido a que ese certificado ha sido instalado sin la opción de exportar la Key.

10. Indicamos la ruta en la que guardar el fichero, además podemos asignar una clave al fichero para mayor seguridad:

Asistente certificado SSL IIS 6.0

Asistente certificado SSL IIS 6.0

Una vez exportado, simplemente tendremos que acceder al servidor en el que queramos importar el SSL, seguir los mismos pasos hasta el asistente (paso 8), y en vez de pinchar en “Export the current certificate to a .pfx file”, lo haremos en importar –> “Import a certificate from a .pfx file”.

Me he basado en las imagenes y texto en inglés de isaserver.org