Let's Encrypt es una autoridad de certificación que proporciona certificados SSL/TLS gratuitos, permitiendo habilitar HTTPS en servidores web. Certbot es una herramienta oficial de Let's Encrypt que simplifica el proceso de obtención y renovación de certificados. Aquí tienes una guía paso a paso para instalar y configurar Let's Encrypt con Certbot para Nginx:
Requisitos previos
- Un dominio registrado: Debes tener un dominio que apunte a tu servidor.
- Un servidor Nginx: Asegúrate de que Nginx esté instalado y funcionando.
- Acceso a la terminal: Necesitas privilegios sudo o root.
Paso 1: Instalar Certbot
- Actualizar el sistema:
sudo apt update
sudo apt upgrade
- Instalar Certbot y el plugin de Nginx:
sudo apt install certbot python3-certbot-nginx
Paso 2: Configurar Nginx
Antes de obtener el certificado, asegúrate de que tu dominio esté correctamente configurado en Nginx. Aquí tienes un ejemplo básico de configuración de un archivo de bloque de servidor para Nginx:
- Abrir el archivo de configuración del servidor:
sudo nano /etc/nginx/sites-available/tu_dominio
- Agregar la configuración básica:
server {
listen 80;
server_name tu_dominio www.tu_dominio;
root /var/www/tu_dominio;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- Habilitar el sitio y comprobar la configuración:
sudo ln -s /etc/nginx/sites-available/tu_dominio /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Paso 3: Obtener un certificado SSL
Certbot puede automatizar el proceso de configuración del certificado SSL para Nginx.
- Ejecutar Certbot:
sudo certbot --nginx -d tu_dominio -d www.tu_dominio
Sigue las instrucciones en pantalla. Certbot configurará Nginx automáticamente para usar el nuevo certificado SSL.
Paso 4: Verificar la configuración de SSL
Certbot debería haber configurado Nginx para que use HTTPS. Puedes verificar la configuración editando el archivo de configuración del dominio:
- Abrir el archivo de configuración:
sudo nano /etc/nginx/sites-available/tu_dominio
- Verificar la configuración SSL:
server {
listen 80;
server_name tu_dominio www.tu_dominio;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name tu_dominio www.tu_dominio;
ssl_certificate /etc/letsencrypt/live/tu_dominio/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tu_dominio/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/tu_dominio;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Paso 5: Renovación automática
Let's Encrypt los certificados son válidos por 90 días. Certbot instala un cron job para renovar automáticamente los certificados.
- Verificar el cron job:
sudo systemctl list-timers
Paso 6: Probar la renovación manualmente
Puedes probar la renovación manualmente para asegurarte de que funcione correctamente.
- Ejecutar la renovación
sudo certbot renew --dry-run
Conclusión
Siguiendo estos pasos, deberías tener un certificado SSL de Let's Encrypt configurado y funcionando en tu servidor Nginx. El uso de Certbot facilita la obtención y renovación de certificados, asegurando que tu sitio web esté protegido con HTTPS.