Tutoriales

Let’s Encrypt en Ubuntu 14.04 con servidor web Apache

Introducción

Este tutorial te mostrará cómo configurar un certificado SSL/TLS de cifrado en un servidor Ubuntu 14.04 corriendo Apache como servidor web. También te mostrará cómo automatizar el proceso de renovación de certificado mediante cron job.

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

Pre-requisitos

  • Un servidor con Ubuntu 14.04
  • Un servidor web Apache con 1 o más dominios configurados correctamente

1 – Actualizamos la lista de paquetes

$ sudo apt-get update

2 – Instalamos git

$ sudo apt-get install git

3 – Descargamos el cliente de Let’s Encrypt

$ sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

4 – Nos movemos a la carpeta donde descargamos el cliente de Let’s Encrypt

$ cd /opt/letsencrypt

5 – Creamos el certificado

Para un solo dominio

$ ./letsencrypt-auto --apache -d tudominio.com

Para un dominio y subdominios

$ ./letsencrypt-auto --apache -d tudominio.com -d www.tudominio.com -d blog.tudominio.com

No olvides que el dominio base (tudominio.com) debe ir al principio y en el caso de que solo quieras www.tudomino.com

$ ./letsencrypt-auto --apache -d www.tudominio.com

lets-encrypt-creando-certificado

  • Opción Easy para permitir HTTP Y HTTPS
  • Opción Secure para redirigir todas las peticiones a HTTPS

Si el proceso se realiza correctamente el resultado será tener una clave TLS, una firma SHA-256 y nuestro servidor web estará correctamente configurado para hacer uso de las conexiones seguras HTTPS.

Para verificar el estado de nuestro certificado SSL visitamos la web

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

Nota: No olvides reemplazar tudominio.com

Los certificados de Let’s Encrypt son válidos por 90 días, para renovarlos ejecuta el siguiente comando:

$ ./letsencrypt-auto certonly --apache --renew-by-default -d tudominio.com -d www.tudominio.com

Si proporcionaste varios nombres de dominio cuando hiciste la instalación del certificado, tendrás que pasar la misma lista de dominios de nuevo en el comando de la renovación, de lo contrario el cliente de Let’s Encrypt va a generar un nuevo certificado en vez de renovar el existente.

Automatizar el proceso de renovación

Una forma práctica para asegurar que tus certificados se renueven automáticamente es crear una tarea programada que se encargue automáticamente de las solicitudes de renovación.

Para facilitar este proceso, vamos a utilizar un script de shell que verifica la fecha de caducidad del certificado para el dominio proporcionado y solicita una renovación cuando el vencimiento es inferior a 30 días. El script será programado para ejecutarse una vez por semana. De esta manera, incluso si falla una tarea programada, hay un tiempo de 30 días para intentarlo de nuevo cada semana.

En primer lugar, descarga el script y hazlo ejecutable. Siéntete libre de revisar el contenido del script.

$ sudo curl -L -o /usr/local/sbin/le-renew http://do.co/le-renew

$ sudo chmod +x /usr/local/sbin/le-renew

Puedes ejecutar el script manualmente

$ sudo le-renew tudominio.com

Si no hay necesidad de renovar el certificado, el script solo nos dirá cuántos días falta para renovarlo

A continuación, vamos a editar el crontab para crear un nuevo cron job que ejecutará este comando cada semana. Para editar el crontab:

$ sudo crontab -e

Incluye el siguiente contenido, todo en una sola línea:

30 2 * * 1 /usr/local/sbin/le-renew tudominio.com >> /var/log/le-renew.log

Guarda los cambios

Nota: Esto creará un nuevo cron job que ejecutará el comando le-renew todos los lunes a las 2:30 am. La salida producida por el comando será canalizado a un archivo de registro ubicado en /var/log/le-renewal.log.

Etiquetas

Related Articles

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Close