Conseguir certificados SSL/TLS gratuitos
Conseguir certificados sll gratuitos con Let’s Encrypt en Ubuntu
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
1 – Actualizamos la lista de paquetes
2 – Instalamos git
3 – Descargamos el cliente de Let’s Encrypt
4 – Nos movemos a la carpeta donde descargamos el cliente de Let’s Encrypt
5 – Creamos el certificado
Para un solo dominio
Para un dominio y subdominios
No olvides que el dominio base (tudominio.com) debe ir al principio y en el caso de que solo quieras www.tudomino.com
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
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:
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.
Puedes ejecutar el script manualmente
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:
Incluye el siguiente contenido, todo en una sola línea:
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.
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
- 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 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.