Cómo instalar un certificado Let's Encrypt en Internet Information Server
tips 2020-08-17 10:10:22
Si ya has instalado certificados Let's Encrypt en servidores Linux sabrás que existe una gran herramienta llamada certbot, que te permite instalar y renovar tus certificados Let's Encrypt de forma automática.
Para windows también existe la misma herramienta, bueno, de hecho existen varias, pero en este artículo me voy a centrar como proceder con certbot.
En estos momentos certbot no admite la instalación automática del certificado en Internet Information Server, por lo menos al momento de escribir esta nota en agosto del 2020, por lo que este articulo estará dividido en como instalar certbot y generar el certificado, como convertir éste en un archivo pfx (necesario para importarlo en IIS) y su posterior importación y binding en el servidor.
Instalar certbot y generar certificado Let's Encrypt
Puedes bajarte la última versión de certbot en certbot.eff.org/lets-encrypt/windows-other, en el momento de esta nota la versión disponible era el Certbot Beta 1.7.0.
Una vez que lo descargues y lo instales en tu servidor el comando certbot estará disponible para que lo puedas ejecutar desde la consola de comandos.
Para generar tu nuevo certificado tienes dos formas diferentes de ejecutar el comando. Dado que Let's Encrypt necesita completar un "desafía" (el cual consiste en compartir un archivo en tu servidor para que sea accedido para la validación) certbot debe saber como quieres compartir éste, si lo haces levantando un servidor web temporal o si usas tu propio servidor web.
En el caso de que desees levantar un servidor temporal para completar el desafío deberás ejecutar.
certbot certonly --standalone
Si deseas usar tu servidor IIS el comando a ejecutar será
certbot certonly --webroot
En mi caso ésta es la opción que uso, ya que con eso evitarás que tus actuales sitio web queden off line mientras se completa el proceso de verificación.
Si deseas generar el certificado pero para un dominio en particular, por ejemplo uno que esté cerca de vencer, puedes hacerlo especificando éste con el parámetro -d como se muestra a continuación.
certbot certonly --webroot -d tu-dominio.com
En caso contrario certbot te solicitará que ingreses el dominio a continuación.
A continuación te solicitará el path al directorio raíz de tu dominio en tu servidor web, en una instalación típica de IIS generalmente éste podría ser C:\inetpub\wwwroot\ , pero ten en cuenta que podría variar según tu configuración.
Luego de esto y si el path es el correcto se ejecutarán las validaciones y certbot creara una carpeta con los certificados y clave privada en C:\Certbot\live\tu-dominio.com.
Preparar archivo pfx
Como lo mencionamos anteriormente certbot no instala de forma automática tu certificado (al menos por ahora), por lo que debemos generar un archivo pfx para la posterior importación en IIS.
Para ello haremos uso de openssl (esta herramienta la puedes descargar fácilmente de internet googleando openssl windows).
En una consola de comando sitúate en la carpeta donde se encuentran tu certificados (en nuestro ejemplo C:\Certbot\live\tu-dominio.com) y ejecuta el siguiente comando:
openssl pkcs12 -export -out micertificado.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
Se te solicitará que elijas una clave, ingresa una que recuerdes fácilmente ya que luego la usaras al importar el archivo y vuelve a ingresarla cuando se pida que verifiques ésta.
Luego de ello verás que habrá quedado generado el archivo micertificado.pfx (el que habías especificado como nombre de salida de archivo en el comando anterior).
Importar e instalar certificado en IIS
Ahora solo nos restará importar el certificado en IIS y hacer el binding correspondiente (en este ejemplo he procedido en un IIS 7.5 en Windows Server 2008 R2).
Abrimos el administrador de IIS, nos situamos en nuestro servidor y hacemos clic en Server Certificates como se muestra en la figura inferior.
Una vez hecho eso seleccionamos en ventana de certificados la opción Import... desde el panel de Actions.
Esto nos abrirá un cuadro de diálogo para buscar nuestro certificado (debes seleccionar el archivo micertificado.pfx que creaste anteriormente), ingresa la clave que habías elegido y presiona OK
El certificado quedará entonces en tu lista de certificados en la misma pantalla.
Solo restará ahora crear el binding para que tu sitio web, para ello selecciona en el mismo administrador de IIS en el panel de Connections tu sitio web (típicamente "Default Web Site") y en el panel de Actions selecciona Bindings....
En el cuadro de diálogo que se despliega presiona en el botón Add, y selecciona entonces el valor "https" en el cuadro desplegable Type, selecciona la ip de tu servidor en IP address (si tu IIS gestiona diferentes sitios web con diferentes ip ten cuidado de seleccionar la correcta), en port dejas el valor 443 y en el cuadro SSL Certificates selecciona tu certificado.
Luego de esto reinicia tu servidor web y los cambios quedarán realizados.
Ante cualquier problema dispones de herramientas on-line para detectar fallos, como ser ssllabs.com/ssltest.