Instalar un Certificado SSL de Let’s Encrypt en Linode con Apache

Introducción: En este artículo, te guiaré paso a paso para instalar un certificado SSL gratuito utilizando Let’s Encrypt en un servidor Linode con Apache. Tener un certificado SSL es esencial para asegurar las conexiones a tu sitio web, proteger los datos y mejorar tu posicionamiento en los motores de búsqueda.

Requisitos previos:

Antes de comenzar, asegúrate de cumplir con los siguientes requisitos:

  • Servidor Linode con sistema operativo Linux Ubuntu 24.04 LTS
  • Apache instalado y en funcionamiento.
  • Dominio registrado apuntando a tu servidor (puedes verificar esto con un ping a tu dominio).
  • Acceso SSH con permisos de root o usuario con privilegios de sudo.
Paso 1: Actualizar los paquetes del sistema

Es importante mantener tu sistema actualizado antes de realizar cualquier instalación.

Bash
apt update && sudo apt upgrade

Esto asegurará que todos los paquetes estén al día y evitará conflictos durante la instalación.

Paso 2: Instalar Certbot

Certbot es una herramienta que automatiza el proceso de instalación y renovación de certificados SSL de Let’s Encrypt. Para instalar Certbot en Ubuntu, ejecuta el siguiente comando:

Bash
snap install --classic certbot

Ejecuta el siguiente comando en la terminal para asegurate de que comando cerbot pueda ejecutarse de forma correcta:

Bash
ln -s /snap/bin/certbot /usr/bin/certbot

Paso 3: Obtener el certificado SSL

Ejecuta este comando para obtener un certificado y permitir que Certbot edite automáticamente la configuración de Apache para servirlo, activando el acceso HTTPS en un solo paso:

Bash
certbot --apache -d tu-dominio.com -d www.tu-dominio.com

Certbot te guiará a través de la instalación y configuración del certificado. Si todo sale bien, verás un mensaje de éxito y tu sitio web ya estará protegido con SSL. Este es un ejemplo de la salida en la terminal, después de la ejecución del comando:

Bash
root@localhost:~# certbot --apache -d tu-dominio.com -d www.tu-dominio.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): ivanetinajero@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.
Requesting a certificate for tu-dominio.com and www.tu-dominio.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/tu-dominio.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/tu-dominio.com/privkey.pem
This certificate expires on 2024-12-23.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for tu-dominio.com to /etc/apache2/sites-available/000-default-le-ssl.conf

We were unable to find a vhost with a ServerName or Address of www.tu-dominio.com.
Which virtual host would you like to choose?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: 000-default.conf               |                        |       | Enabled
2: 000-default-le-ssl.conf        | tu-dominio.com         | HTTPS | Enabled
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Successfully deployed certificate for www.tu-dominio.com to /etc/apache2/sites-available/000-default-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://tu-dominio.com and https://www.tu-dominio.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Paso 4: Verificar la instalación de SSL

Para verificar que el certificado está correctamente instalado y activo, visita tu sitio web con https:// al inicio de la URL. También puedes usar una herramienta como DigiCert SSL Installation Diagnostics Tool para realizar una prueba detallada de tu certificado.

Paso 5: Configurar la renovación automática del certificado

Los certificados de Let’s Encrypt son válidos por 90 días, pero puedes automatizar el proceso de renovación para que no tengas que preocuparte por ello. Certbot ya instala un cron job que renueva automáticamente los certificados antes de que expiren. Si deseas verificar que la renovación funciona correctamente, ejecuta:

Bash
certbot renew --dry-run

Conclusión

Con estos pasos, has instalado correctamente un certificado SSL gratuito de Let’s Encrypt en tu servidor Linode con Apache. A partir de ahora, tu sitio web estará asegurado con HTTPS, lo que proporcionará una conexión cifrada y mayor confianza para tus usuarios.