Cómo Instalar Certificados SSL/TLS con Let's Encrypt

Introducción

Los certificados SSL/TLS son esenciales para asegurar sitios web y proteger los datos de usuarios transmitidos a través de internet. Let's Encrypt ha revolucionado la seguridad web al proporcionar certificados SSL/TLS gratuitos, automatizados y abiertos, haciendo HTTPS accesible para todos. Fundado por el Internet Security Research Group (ISRG) en 2016, Let's Encrypt ha emitido más de 3 mil millones de certificados, aumentando dramáticamente la adopción de HTTPS en la web.

Let's Encrypt utiliza el protocolo ACME (Automated Certificate Management Environment) para verificar la propiedad del dominio y emitir certificados automáticamente. Los certificados son válidos por 90 días y pueden renovarse automáticamente, asegurando que su sitio web permanezca seguro sin intervención manual. Este enfoque ha eliminado las barreras financieras y técnicas que anteriormente impedían que muchos sitios web implementaran cifrado SSL/TLS.

Esta guía completa cubre todo lo que necesita saber sobre la instalación y gestión de certificados SSL/TLS de Let's Encrypt. Aprenderá a usar Certbot (el cliente oficial de Let's Encrypt) para obtener certificados para Apache y Nginx, configurar la renovación automática, implementar mejores prácticas para la seguridad SSL/TLS, solucionar problemas comunes y comprender la gestión de certificados. Ya sea que esté asegurando un blog simple o una aplicación compleja de múltiples dominios, esta guía proporciona la base para implementar un cifrado HTTPS robusto.

Prerrequisitos

Antes de instalar certificados de Let's Encrypt, asegúrese de tener:

  • Un nombre de dominio registrado que apunte a la dirección IP de su servidor
  • Apache o Nginx instalado y configurado en Ubuntu/Debian o CentOS/Rocky Linux
  • Acceso root o privilegios sudo a su servidor
  • Puertos 80 (HTTP) y 443 (HTTPS) abiertos en su firewall
  • Una conexión a internet estable
  • Registros DNS válidos (registros A o AAAA) que apunten a su servidor
  • Su servidor web configurado con un host virtual/bloque de servidor para su dominio
  • Comprensión básica de conceptos SSL/TLS
  • Ningún otro servicio usando el puerto 80 durante la emisión del certificado

Comprender Let's Encrypt

Cómo Funciona Let's Encrypt

Proceso de Emisión de Certificados:
1. Certbot solicita certificado de la CA de Let's Encrypt
2. Let's Encrypt genera desafío para verificar propiedad del dominio
3. Certbot coloca archivo de desafío en .well-known/acme-challenge/
4. Let's Encrypt verifica desafío accediendo al archivo vía HTTP
5. Tras verificación exitosa, se emite el certificado
6. Certbot instala el certificado y configura el servidor web

Métodos de Validación de Certificados

Desafío HTTP-01:

  • Método más común
  • Requiere puerto 80 accesible
  • No puede usarse para certificados wildcard
  • Verifica propiedad del dominio vía HTTP

Desafío DNS-01:

  • Usado para certificados wildcard
  • Requiere acceso a API de DNS
  • Puede validar dominios internos
  • Configuración más compleja

Desafío TLS-ALPN-01:

  • Usa puerto 443
  • Bueno para entornos con firewall restringido
  • No tan ampliamente soportado

Características de Certificados

  • Período de Validez: 90 días
  • Renovación: Recomendada a los 60 días
  • Validación de Dominio (DV): Verifica solo la propiedad del dominio
  • Tipos de Certificado: Dominio único, múltiples dominios (SAN), wildcard
  • Cifrado: Claves RSA 2048-bit o ECDSA
  • Compatibilidad con Navegadores: Todos los navegadores modernos
  • Costo: Completamente gratuito

Instalar Certbot

Certbot es el cliente oficial de Let's Encrypt que automatiza la gestión de certificados.

Ubuntu 20.04/22.04/24.04 y Debian 10/11/12

# Actualizar repositorio de paquetes
sudo apt update

# Instalar Certbot
sudo apt install certbot -y

# Instalar plugin de Certbot para Apache
sudo apt install python3-certbot-apache -y

# O instalar plugin de Certbot para Nginx
sudo apt install python3-certbot-nginx -y

# Verificar instalación
certbot --version

CentOS 8, Rocky Linux y AlmaLinux

# Habilitar repositorio EPEL
sudo dnf install epel-release -y

# Instalar Certbot
sudo dnf install certbot -y

# Instalar plugin de Certbot para Apache
sudo dnf install python3-certbot-apache -y

# O instalar plugin de Certbot para Nginx
sudo dnf install python3-certbot-nginx -y

# Verificar instalación
certbot --version

CentOS 7

# Habilitar repositorio EPEL
sudo yum install epel-release -y

# Instalar Certbot
sudo yum install certbot -y

# Instalar plugin de Certbot
sudo yum install python2-certbot-apache -y  # Para Apache
sudo yum install python2-certbot-nginx -y   # Para Nginx

# Verificar instalación
certbot --version

Alternativa: Instalación con Snap (Recomendado por Let's Encrypt)

# Instalar snapd
sudo apt install snapd -y  # Ubuntu/Debian
sudo dnf install snapd -y  # CentOS/Rocky

# Asegurar que snapd esté actualizado
sudo snap install core
sudo snap refresh core

# Eliminar cualquier paquete Certbot existente
sudo apt remove certbot -y  # Ubuntu/Debian
sudo dnf remove certbot -y  # CentOS/Rocky

# Instalar Certbot vía snap
sudo snap install --classic certbot

# Crear enlace simbólico
sudo ln -s /snap/bin/certbot /usr/bin/certbot

# Verificar instalación
certbot --version

Obtener Certificados para Apache

Configuración Automática

Certbot puede configurar Apache automáticamente:

# Obtener e instalar certificado con configuración automática
sudo certbot --apache

# Para dominio específico
sudo certbot --apache -d ejemplo.com -d www.ejemplo.com

# Para múltiples dominios
sudo certbot --apache -d ejemplo.com -d www.ejemplo.com -d blog.ejemplo.com

Durante el proceso, Certbot:

  1. Detectará su configuración de Apache
  2. Verificará la propiedad del dominio
  3. Obtendrá el certificado
  4. Configurará los hosts virtuales de Apache
  5. Habilitará el módulo SSL
  6. Configurará redirección de HTTP a HTTPS (opcional)

Solo Certificado Manual (Webroot)

Obtener certificado sin modificar la configuración de Apache:

# Especificar webroot para verificación
sudo certbot certonly --webroot -w /var/www/ejemplo.com/html -d ejemplo.com -d www.ejemplo.com

# Los archivos del certificado se guardarán en:
# /etc/letsencrypt/live/ejemplo.com/

Modo Independiente

Use el modo independiente si Apache no está ejecutándose:

# Detener Apache temporalmente
sudo systemctl stop apache2  # Ubuntu/Debian
sudo systemctl stop httpd    # CentOS/Rocky

# Obtener certificado
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com

# Iniciar Apache
sudo systemctl start apache2  # Ubuntu/Debian
sudo systemctl start httpd    # CentOS/Rocky

Configuración Manual de Apache

Después de obtener el certificado con certonly, configure Apache manualmente:

Ubuntu/Debian

Crear o editar host virtual:

sudo nano /etc/apache2/sites-available/ejemplo.com-ssl.conf

Agregar configuración:

<VirtualHost *:443>
    ServerName ejemplo.com
    ServerAlias www.ejemplo.com
    ServerAdmin [email protected]

    DocumentRoot /var/www/ejemplo.com/html

    # Motor SSL
    SSLEngine on

    # Archivos de certificado
    SSLCertificateFile /etc/letsencrypt/live/ejemplo.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ejemplo.com/privkey.pem

    # Configuración SSL fuerte
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
    SSLHonorCipherOrder off
    SSLSessionTickets off

    # Encabezado HSTS
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

    <Directory /var/www/ejemplo.com/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/ejemplo-ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/ejemplo-ssl-access.log combined
</VirtualHost>

# Redirección de HTTP a HTTPS
<VirtualHost *:80>
    ServerName ejemplo.com
    ServerAlias www.ejemplo.com
    Redirect permanent / https://ejemplo.com/
</VirtualHost>

Habilitar configuración:

# Habilitar módulo SSL
sudo a2enmod ssl

# Habilitar sitio
sudo a2ensite ejemplo.com-ssl.conf

# Probar configuración
sudo apache2ctl configtest

# Recargar Apache
sudo systemctl reload apache2

CentOS/Rocky/AlmaLinux

Editar host virtual:

sudo nano /etc/httpd/conf.d/ejemplo.com-ssl.conf

Agregar configuración:

<VirtualHost *:443>
    ServerName ejemplo.com
    ServerAlias www.ejemplo.com
    DocumentRoot /var/www/ejemplo.com/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/ejemplo.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ejemplo.com/privkey.pem

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite HIGH:!aNULL:!MD5

    <Directory /var/www/ejemplo.com/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName ejemplo.com
    ServerAlias www.ejemplo.com
    Redirect permanent / https://ejemplo.com/
</VirtualHost>

Probar y recargar:

sudo httpd -t
sudo systemctl reload httpd

Obtener Certificados para Nginx

Configuración Automática

Certbot puede configurar Nginx automáticamente:

# Obtener e instalar certificado con configuración automática
sudo certbot --nginx

# Para dominio específico
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com

# Para múltiples dominios
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com -d blog.ejemplo.com -d api.ejemplo.com

Certbot:

  1. Detectará bloques de servidor de Nginx
  2. Verificará la propiedad del dominio
  3. Obtendrá el certificado
  4. Configurará bloques de servidor de Nginx para HTTPS
  5. Configurará redirección de HTTP a HTTPS

Solo Certificado Manual (Webroot)

# Especificar webroot para verificación
sudo certbot certonly --webroot -w /var/www/ejemplo.com/html -d ejemplo.com -d www.ejemplo.com

# Certificados guardados en:
# /etc/letsencrypt/live/ejemplo.com/

Modo Independiente

# Detener Nginx temporalmente
sudo systemctl stop nginx

# Obtener certificado
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com

# Iniciar Nginx
sudo systemctl start nginx

Configuración Manual de Nginx

Después de obtener el certificado con certonly, configure Nginx manualmente:

Ubuntu/Debian

Crear o editar bloque de servidor:

sudo nano /etc/nginx/sites-available/ejemplo.com

Agregar configuración:

# Bloque de servidor HTTPS
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name ejemplo.com www.ejemplo.com;

    root /var/www/ejemplo.com/html;
    index index.html index.htm;

    # Certificados SSL
    ssl_certificate /etc/letsencrypt/live/ejemplo.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ejemplo.com/privkey.pem;

    # Configuración SSL
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # Caché de sesión SSL
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # OCSP stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/ejemplo.com/chain.pem;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    # Encabezados de seguridad
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    location / {
        try_files $uri $uri/ =404;
    }

    # Ubicación de renovación de Let's Encrypt
    location ~ /.well-known/acme-challenge {
        allow all;
        root /var/www/ejemplo.com/html;
    }
}

# Redirección de HTTP a HTTPS
server {
    listen 80;
    listen [::]:80;

    server_name ejemplo.com www.ejemplo.com;

    # Permitir validación de Let's Encrypt
    location ~ /.well-known/acme-challenge {
        allow all;
        root /var/www/ejemplo.com/html;
    }

    # Redirigir a HTTPS
    location / {
        return 301 https://$server_name$request_uri;
    }
}

Habilitar y recargar:

sudo ln -s /etc/nginx/sites-available/ejemplo.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

CentOS/Rocky/AlmaLinux

Editar bloque de servidor:

sudo nano /etc/nginx/conf.d/ejemplo.com.conf

Use la misma configuración de arriba, luego:

sudo nginx -t
sudo systemctl reload nginx

Certificados Wildcard

Los certificados wildcard aseguran un dominio y todos sus subdominios:

Desafío DNS Requerido

Los certificados wildcard requieren validación DNS:

# Instalar plugin DNS (ejemplo para Cloudflare)
sudo apt install python3-certbot-dns-cloudflare -y

# Crear archivo de credenciales
sudo nano /etc/letsencrypt/cloudflare.ini

Agregar token API de Cloudflare:

dns_cloudflare_api_token = SU_TOKEN_API_AQUÍ

Asegurar el archivo:

sudo chmod 600 /etc/letsencrypt/cloudflare.ini

Obtener certificado wildcard:

sudo certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
  -d ejemplo.com \
  -d '*.ejemplo.com'

Plugins DNS Populares

# Cloudflare
sudo apt install python3-certbot-dns-cloudflare

# DigitalOcean
sudo apt install python3-certbot-dns-digitalocean

# Route53 (AWS)
sudo apt install python3-certbot-dns-route53

# Google Cloud DNS
sudo apt install python3-certbot-dns-google

Renovación Automática

Probar Renovación

Probar el proceso de renovación sin renovar realmente:

sudo certbot renew --dry-run

Esto simula la renovación e identifica posibles problemas.

Configuración de Renovación Automática

Certbot instala automáticamente un temporizador/trabajo cron de renovación:

Temporizador Systemd (Ubuntu 20.04+, CentOS 8+)

Verificar estado del temporizador:

sudo systemctl list-timers | grep certbot
sudo systemctl status certbot.timer

Habilitar temporizador si no está activo:

sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

Ver configuración del temporizador:

sudo cat /lib/systemd/system/certbot.timer

Trabajo Cron (Sistemas Antiguos)

Verificar trabajo cron:

sudo cat /etc/cron.d/certbot

Contenido típico:

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

Renovación Manual

Forzar renovación manualmente:

# Renovar todos los certificados
sudo certbot renew

# Renovar certificado específico
sudo certbot renew --cert-name ejemplo.com

# Forzar renovación incluso si no es necesaria
sudo certbot renew --force-renewal

Hooks Post-Renovación

Ejecutar comandos después de una renovación exitosa:

# Recargar servidor web después de renovación
sudo certbot renew --deploy-hook "systemctl reload apache2"  # Apache
sudo certbot renew --deploy-hook "systemctl reload nginx"   # Nginx

Crear hook permanente:

sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-webserver.sh

Agregar:

#!/bin/bash
systemctl reload nginx

Hacer ejecutable:

sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-webserver.sh

Gestión de Certificados

Listar Certificados

sudo certbot certificates

La salida muestra:

  • Nombre del certificado
  • Dominios cubiertos
  • Fecha de expiración
  • Ruta del certificado
  • Ruta de la clave privada

Expandir Certificado (Agregar Dominios)

# Agregar nuevo dominio a certificado existente
sudo certbot --expand -d ejemplo.com -d www.ejemplo.com -d blog.ejemplo.com

Eliminar Certificado

# Eliminar certificado
sudo certbot delete --cert-name ejemplo.com

# Eliminación interactiva
sudo certbot delete

Revocar Certificado

# Revocar y eliminar certificado
sudo certbot revoke --cert-path /etc/letsencrypt/live/ejemplo.com/cert.pem --delete-after-revoke

Estructura de Archivos de Certificado

/etc/letsencrypt/
├── live/
│   └── ejemplo.com/
│       ├── cert.pem          # Solo certificado de dominio
│       ├── chain.pem         # Certificados intermedios
│       ├── fullchain.pem     # cert.pem + chain.pem (use este para servidores web)
│       └── privkey.pem       # Clave privada (¡mantener segura!)
├── archive/
│   └── ejemplo.com/          # Todos los certificados históricos
├── renewal/
│   └── ejemplo.com.conf      # Configuración de renovación
└── accounts/                 # Información de cuenta Let's Encrypt

Mejores Prácticas de Seguridad

Configuración SSL/TLS Fuerte

Apache

# Habilitar solo protocolos SSL modernos
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

# Suites de cifrado fuertes
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305

# Preferencia de cifrado del servidor
SSLHonorCipherOrder off

# OCSP Stapling
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

# Encabezado HSTS
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Nginx

# Protocolos SSL
ssl_protocols TLSv1.2 TLSv1.3;

# Cifrados fuertes
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

# Configuración de sesión SSL
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;

# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/ejemplo.com/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Permisos de Archivos

Asegurar permisos apropiados:

# Los directorios de Let's Encrypt deben ser propiedad de root
sudo chown -R root:root /etc/letsencrypt
sudo chmod -R 755 /etc/letsencrypt/live
sudo chmod -R 755 /etc/letsencrypt/archive

# Las claves privadas deben ser legibles solo por root
sudo chmod 600 /etc/letsencrypt/archive/*/privkey*.pem

Probar Configuración SSL

Use herramientas en línea:

O línea de comandos:

# Probar SSL/TLS
curl -I https://ejemplo.com

# Verificar detalles del certificado
openssl s_client -connect ejemplo.com:443 -servername ejemplo.com < /dev/null

# Verificar certificado
echo | openssl s_client -connect ejemplo.com:443 2>/dev/null | openssl x509 -noout -dates

Solución de Problemas

Fallos de Validación de Certificados

Problema: "Failed authorization procedure"

Verificar DNS:

dig ejemplo.com
nslookup ejemplo.com

Asegurar que el dominio apunte a la IP de su servidor.

Problema: "Connection refused"

Verificar que el servidor web esté ejecutándose:

sudo systemctl status apache2  # o nginx
sudo ss -tulpn | grep :80

Verificar firewall:

sudo ufw status  # Ubuntu/Debian
sudo firewall-cmd --list-all  # CentOS/Rocky

Fallos de Renovación

Verificar configuración de renovación:

sudo cat /etc/letsencrypt/renewal/ejemplo.com.conf

Probar renovación:

sudo certbot renew --dry-run --cert-name ejemplo.com

Verificar registros:

sudo tail -f /var/log/letsencrypt/letsencrypt.log

Límites de Tasa

Let's Encrypt tiene límites de tasa:

  • 50 certificados por dominio registrado por semana
  • 5 certificados duplicados por semana
  • 300 nuevos pedidos por cuenta por 3 horas

Si alcanza el límite, espere a que expire el período límite.

Certificado No Confiable

Asegurar usar fullchain.pem:

# Correcto
SSLCertificateFile /etc/letsencrypt/live/ejemplo.com/fullchain.pem

# Incorrecto
SSLCertificateFile /etc/letsencrypt/live/ejemplo.com/cert.pem
# Correcto
ssl_certificate /etc/letsencrypt/live/ejemplo.com/fullchain.pem;

# Incorrecto
ssl_certificate /etc/letsencrypt/live/ejemplo.com/cert.pem;

Monitoreo de Expiración de Certificados

Verificar Fecha de Expiración

# Verificar todos los certificados
sudo certbot certificates

# Verificar expiración de certificado específico
sudo openssl x509 -in /etc/letsencrypt/live/ejemplo.com/cert.pem -noout -enddate

Script de Monitoreo

Crear script de monitoreo:

sudo nano /usr/local/bin/check-cert-expiry.sh

Agregar:

#!/bin/bash
DOMAIN="ejemplo.com"
EXPIRY=$(sudo certbot certificates | grep -A 3 "$DOMAIN" | grep "Expiry Date" | awk '{print $3}')
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 ))

if [ $DAYS_LEFT -lt 30 ]; then
    echo "ADVERTENCIA: ¡El certificado para $DOMAIN expira en $DAYS_LEFT días!"
    # Enviar alerta por correo
    echo "El certificado expira en $DAYS_LEFT días" | mail -s "Advertencia de Certificado SSL" [email protected]
fi

Hacer ejecutable:

sudo chmod +x /usr/local/bin/check-cert-expiry.sh

Agregar a cron:

sudo crontab -e

Agregar:

0 0 * * * /usr/local/bin/check-cert-expiry.sh

Mejores Prácticas

Monitoreo Regular

  • Verificar expiración de certificados regularmente
  • Monitorear registros de renovación
  • Probar renovaciones con --dry-run
  • Mantener Certbot actualizado

Actualizar Certbot

# Ubuntu/Debian (APT)
sudo apt update
sudo apt upgrade certbot python3-certbot-nginx python3-certbot-apache

# Snap
sudo snap refresh certbot

Respaldar Certificados

# Respaldar directorio Let's Encrypt
sudo tar -czf letsencrypt-backup-$(date +%F).tar.gz /etc/letsencrypt/

# Almacenar respaldo de forma segura fuera del servidor

Documentación

Documente sus certificados:

  • Nombres de dominio cubiertos
  • Tipo de certificado (único, SAN, wildcard)
  • Método de renovación
  • Hooks de despliegue
  • Información de contacto

Conclusión

Let's Encrypt ha hecho el cifrado SSL/TLS accesible para todos, eliminando las barreras de costo y complejidad. Esta guía ha cubierto la instalación, obtención de certificados para Apache y Nginx, renovación automática, mejores prácticas de seguridad y solución de problemas.

Puntos clave:

  • Let's Encrypt proporciona certificados SSL/TLS gratuitos y automatizados
  • Certbot simplifica la gestión de certificados en servidores web
  • La renovación automática asegura seguridad continua sin intervención manual
  • La configuración apropiada de SSL/TLS es esencial para máxima seguridad
  • El monitoreo y pruebas regulares previenen problemas de expiración de certificados

Implemente HTTPS en todos sus sitios web para proteger los datos de usuarios, mejorar clasificaciones SEO y generar confianza con los visitantes. Continúe explorando temas avanzados como certificados wildcard, certificados multi-dominio, registros DNS CAA y monitoreo de transparencia de certificados. Siempre use configuraciones SSL/TLS fuertes y mantenga sus certificados actualizados para una seguridad óptima.