Guía Completa para Instalar y Configurar Let's Encrypt con Certbot en Nginx

Artículos Guías Manuales Sistemas Linux Windows Binario 0

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

  1. Un dominio registrado: Debes tener un dominio que apunte a tu servidor.
  2. Un servidor Nginx: Asegúrate de que Nginx esté instalado y funcionando.
  3. Acceso a la terminal: Necesitas privilegios sudo o root.

Paso 1: Instalar Certbot

  1. Actualizar el sistema:

    sudo apt update
    sudo apt upgrade
  2. 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:

  1. Abrir el archivo de configuración del servidor:

    sudo nano /etc/nginx/sites-available/tu_dominio
  2. 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;
    }
    }
  3. 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.

  1. 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:

  1. Abrir el archivo de configuración:

    sudo nano /etc/nginx/sites-available/tu_dominio
  2. 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.

  1. 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.

  1. 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.