Implantar certificado SSL/TLS (IIS)

TEORÍA

¿Qué es un certificado SSL/TLS?

PRÁCTICA

IMPORTAR CERTIFICADO

En el servidor IIS hay que importar primero el certificado en su repositorio de certificados para que este pueda usarlo. Tenemos dos formas de importar certificados en IIS.

IMPORTACIÓN DIRECTA

La primera es importar directamente el certificado firmado con extensión .pfx (Es un certificado con formato PKCS#12 que básicamente lo que hace es empaquetar en un solo archivo la clave privada encriptada bajo una contraseña definida por el usuario y el certificado SSL/TLS).

Con OpenSSL podemos empaquetar el certificado PEM y la clave privada (más información).

Para ello vamos al primer nodo del subpanel izquierdo «conexiones» que tendrá el nombre de nuestra máquina; y ahí ir a «Certificados de servidor»:

En el subpanel derecho «Acciones» hay que usar la acción «Importar…», seleccionar el certificado en formato PFX e introducir la contraseña que encripta a la clave privada.

 

SOLICITAR CERTIFICADO

La segunda es crear una solicitud de firma para mandarlo a una CA generando así el archivo CSR codificado en base64 que se le manda a la CA para que procese la petición y nos devuelva un certificado firmado (completando así la solicitud). El certificado devuelto por la CA debe estar en formato PKCS#7 (que es un paquete de certificados).

Para ello hacemos igual que el modo anterior pero en lugar de usar la acción de «Importar…» usamos la de «Crear una solicitud de certificado…». Nos aparecerá una ventana para incluir los datos organizativos y del dominio propios de un documento CSR:

Esto genera un fichero de texto que contiene los datos del CSR codificados en base 64 que debemos mandar a la CA. Cuando tengamos la respuesta de la CA usamos la acción «Completar solicitud de certificado…» y seleccionamos el certificado PKCS#7 recibido.

NOTA: Aunque a la hora de seleccionar el archivo, IIS directamente nos pida un archivo con extensión .cer, debemos darle un archivo de tipo PKCS#7 o sino nos devolverá un error del tipo: «The requested property value is empty. (Exception from HRESULT: 0x80094004)».

Mi CA me devuelve un archivo PEM/DER: se puede transformar el tipo de certificado con las herramientas que nos da Windows. Para ello, abrimos el certificado (doble click), vamos a la pestaña «Detalles» y usamos el botón que pone «Copiar en archivo…»; sencillamente seleccionar el formato PKCS#7.

USAR CERTIFICADO EN UN VIRTUAL HOST

Una vez que tenemos el certificado dentro del repositorio de certificados del servidor, debemos usarlo en el dominio concreto (este dominio o host virtual debe tener el mismo nombre que se le dió en el archivo CSR).

Para conseguir esto vamos a sitios y seleccionamos el virtual host que deseemos, y en el subpanel derecho (Acciones) seleccionamos «Enlaces…».

Se nos abrirá una ventana con el botón «Agregar…» que a su vez nos abrirá otra ventana donde debemos poner:

  • Tipo: https.
  • IP: la que se considere adecuado, por lo general será la misma que tuviera el primer enlace HTTP sin seguridad.
  • Puerto: 443.
  • Nombre de host: deberá ser el mismo que hayamos puesto en el CSR.
  • Certificado SSL: Seleccionar el certificado que hemos importado para este dominio concreto.

REDIRIGIR DE HTTP A HTTPS

Se queremos que solo se acceda al servidor usando conexión segura debemos reescribir la URL, AQUÍ puedes ver cómo se hace.

FORZAR PROTOCOLOS DE CIFRADO

Si deseas forzar uno o varios protocolos de cifrado a la hora de usar HTTPS con el servidor, puedes verlo AQUÍ.

Deja un comentario