Certificado TSL/SSL de Let´s Encrypt: te enseñamos cómo configurarlo

En este tutorial te vamos a explicar cómo configurar un certificado TSL/SSL de Let´s Encrypt en un servidor con Ubuntu 16.04 que ejecuta Apache como servidor web. También te vamos a enseñar cómo automatizar el proceso de renovación de los certificados usando cron.

Los certificados SSL se utilizan en servidores web para cifrar el tráfico entre el servidor y el cliente, proporcionando mayor seguridad a los usuarios que acceden a tu web. Let´s Encrypt proporciona una manera fácil de obtener e instalar certificados de confianza de forma gratuita.

Requisitos necesarios para realizar este tutorial

  • Tener un servidor Ubuntu 16.04 con acceso a un usuario sudo
  • Servidor Apache configurado con vhosts
    1. Instalación del cliente de Let´s Encrypt

      Primero tienes que descargar e instalar el cliente de Let´s Encrypt desde los repositorios oficiales.

      Aviso

      Los repositorios de Clouding.io ya tienen el paquete que vamos a instalar

      Actualiza los repositorios e instala el paquete con apt:

      $ sudo apt-get update

      $ sudo apt-get install python-letsencrypt-apache

      Una vez finalizada su instalación, podrás ejecutar el comando letsencrypt.

    2. Configurar el Certificado TSL/SSL

      Generar el certificado SSL para Apache utilizando Let´s Encrypt es bastante sencillo. Obtendrás e instalarás automáticamente un nuevo certificado SSL válido para los dominios proporcionados como parámetros.

      Si quieres añadir un certificado SSL a un dominio específico debes ejecutar el siguiente comando:

      $ sudo letsencrypt --apache -d dominio.com

      Si deseas instalar un único certificado para varios dominios o subdominios puedes pasarlos por parámetros adicionales. El primer dominio en la lista será el dominio base utilizado por Let´s Encrypt para crear el certificado, mientras que el resto de nombres de dominio serán subdominios o alias.

      $ sudo letsencrypt --apache -d dominio.com -d www.dominio.com -d webmail.dominio.com

      La primera vez que ejecutes este comando se te presentará una guía paso a paso para crear el certificado. Se te pedirá que proporciones una dirección de correo electrónico para la recuperación de claves perdidas y avisos, y podrás elegir entre habilitar el acceso HTTP y HTTPS (Easy) o forzar todas las solicitudes a redirigir a HTTPS (Secure).

      Cuando la instalación del certificado SSL finalice, deberías encontrar los archivos de certificados generados en la siguiente ruta /etc/letsencrypt/live. Además, puedes verificar el estado del certificado SSL con el siguiente enlace (sustituyendo dominio.com por su dominio base).

      https://www.ssllabs.com/ssltest/analyze.html?d=dominio.com&latest

    3. Configurar auto renovación

      Los certificados de Let´s Encrypt son válidos por 90 días y se recomienda renovar los certificados cada 60 días para permitir un margen de error. El cliente de Let´s Encrypt tiene un comando de renovación que comprueba automáticamente los certificados instalados e intenta renovarlos si tienen menos de 30 días de la fecha de caducidad. Para no tener que estar atento cada 60 días de la renovación de los certificados este proceso se puede automatizar con cron jobs.

      El comando para renovar todos los certificados instalados en el Servidor es el siguiente:

      $ sudo letsencrypt renew

      Si ejecutas el comando una vez has creado los certificados obtendrás una salida como ésta:

      Processing /etc/letsencrypt/renewal/domain.com.conf

      The following certs are not due for renewal yet:

      /etc/letsencrypt/live/dominio.com/fullchain.pem (skipped)

      /etc/letsencrypt/live/domain.com/fullchain.pem (skipped)

      No renewals were attempted



      Hay que tener en cuenta que si se ha creado un certificado donde se incluyen varios subdominios, sólo se mostrará el nombre del dominio base en la salida, pero la renovación debe ser válida para todos los dominios incluidos en este certificado.
      Una manera sencilla de garantizar que los certificados no caduquen es crear un trabajo en cron para que periódicamente ejecute el comando de renovación de forma automática.

      El comando de renovación comprueba primero la fecha de vencimiento y sólo ejecuta la renovación si el certificado tiene menos de 30 días de expiración. Por lo tanto, es buena idea añadir este comando en cron para que se ejecute cada semana o incluso todos los días.

      Para añadir un trabajo en cron tienes que ejecutar lo siguiente:

      $ sudo crontab -e

      Y añade la siguiente línea al final del documento:

      30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log

      Por último, guarda y sal del editor. Con esta línea que has añadido, comprobarás cada lunes a las 2:30 a.m. si los certificados tienen menos de 30 días de expiración. Adicionalmente, se creará un registro en /var/log/le-renew.

Conclusión

Con este sencillo proceso ya tienes tu dominio con SSL. Ahora sólo faltaría comprobar mediante un navegador que cuando se accede al dominio, utiliza el protocolo HTTPS.

Para comentar sobre este artículo, rellena el formulario. Los campos marcados con un asterisco (*) son obligatorios.


*