El cifrado SSL/TLS se ha vuelto indispensable en la infraestructura de red actual, siendo un elemento crucial para garantizar la seguridad de la comunicación en los servidores web y de correo. En este artículo, se explicará de manera detallada el proceso para obtener un certificado SSL gratuito de Let's Encrypt en Ubuntu 20.04.
Requisitos previos para obtener un certificado SSL
Antes de iniciar el proceso de certificación, es fundamental contar con un nombre de dominio registrado y asegurarse de que el registro A de DNS esté apuntando a la dirección pública del servidor. Si se tiene habilitado un firewall, es necesario permitir el tráfico HTTP y HTTPS con los siguientes comandos:
sudo ufw allow 80 sudo ufw allow 443
Paso 1: Instalación del paquete Let's Encrypt
La instalación del paquete Let's Encrypt y sus dependencias es un procedimiento bastante sencillo. Para llevarlo a cabo, se debe utilizar el siguiente comando:
sudo apt install letsencrypt
Este comando no solo instala el paquete Let's Encrypt, sino que también incluye la utilidad certbot.timer, que se encargará de la renovación automática de los certificados. Esta herramienta verifica la validez de los certificados SSL en el sistema dos veces al día y se encarga de renovar aquellos que venzan en los próximos 30 días. Para verificar que certbot.timer se esté ejecutando correctamente, se puede usar:
sudo systemctl status certbot.timer
A continuación, se describen diferentes configuraciones y condiciones para la obtención de un certificado.
Paso 2: Obtención del certificado SSL utilizando un servidor independiente
La forma más directa de obtener un certificado SSL es a través de la opción independiente en Certbot. En este paso, se debe reemplazar nombre-dominio.com con el nombre de dominio correspondiente y ejecutar el siguiente comando, siguiendo las instrucciones que aparezcan:
sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d nombre-dominio.com
La opción --standalone implica que el certificado se obtendrá sin instalación en ningún servidor web, mientras que Certbot levantará un servidor web temporal para la autenticación. La opción --agree-tos se utiliza para aceptar los términos del servicio de Let's Encrypt, lo cual es obligatorio, y --preferred-challenges http indica que se usará HTTP para la verificación.
Paso 3: Instalación automática del certificado SSL en servidores web Nginx y Apache
Certbot tiene la capacidad de instalar automáticamente el certificado en servidores web como Nginx y Apache. Para ello, es necesario instalar un paquete adicional dependiendo del servidor utilizado:
sudo apt install python3-certbot-nginx
para Nginx o
sudo apt install python3-certbot-apache
para Apache.
Para Nginx, se debe ejecutar el siguiente comando:
sudo certbot --nginx --agree-tos --preferred-challenges http -d nombre-dominio.com
Si se utiliza Apache, el comando correspondiente es:
sudo certbot --apache --agree-tos --preferred-challenges http -d nombre-dominio.com
Después de ejecutar uno de estos comandos, Certbot guiará a través del proceso de instalación del certificado SSL.
Paso 4: Creación de un certificado SSL comodín con Let's Encrypt
Para la creación de un certificado comodín, el único método de desafío disponible es el de DNS. En este caso, se debe especificar el dominio principal y el comodín (por ejemplo, nombre-dominio.com y *.nombre-dominio.com) en el parámetro -d del siguiente comando:
sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d nombre-dominio.com -d *.nombre-dominio.com
Una vez ejecutado el comando, se deberá agregar el registro TXT indicado en el servidor DNS y continuar con el proceso. Si todo se ha realizado correctamente, se mostrará la ruta donde se almacena el nuevo certificado comodín y se brindará información adicional.
Al seguir estos pasos, se logra obtener e instalar de manera efectiva un certificado SSL gratuito de Let's Encrypt en Ubuntu 20.04, lo que representa un importante avance en la seguridad del servidor y la confianza de los usuarios.
Para más contenido relacionado con la seguridad en la web y otros temas tecnológicos, se invita a explorar más en este blog.