Instalar un certificado SSL: Let's Encrypt
Le explicamos paso a paso cómo obtener un certificado SSL gratuito de Let's Encrypt con Certbot e instalarlo en Nginx o Apache, además de la renovación automática y la redirección a HTTPS.

Para instalar un certificado SSL, su dominio debe apuntar al servidor y el puerto 80 debe estar abierto. Instala Certbot en el servidor y ejecuta sudo certbot --nginx o --apache; Certbot obtiene el certificado, configura el servidor web y activa la renovación automática. El último paso es probar la renovación con certbot renew --dry-run.
¿Qué son Let's Encrypt y Certbot?
Let's Encrypt es una autoridad de certificación sin ánimo de lucro, gestionada por ISRG, que emite gratis certificados con validación de dominio (DV). Si quiere saber para qué sirve un certificado y qué tipos existen, consulte antes nuestro artículo qué es un certificado SSL.
Certbot, por su parte, es el cliente oficial desarrollado por la EFF, que se comunica con Let's Encrypt mediante el protocolo ACME. Solicita el certificado, comprueba que el dominio le pertenece, configura Nginx o Apache y programa la renovación.
Los certificados de Let's Encrypt son de corta duración: la validez por defecto es de 90 días y la entidad ha anunciado que reducirá este plazo de forma gradual. Por eso, confíe siempre en la renovación automática en lugar de la manual.
Lista de comprobación previa
El punto en el que Certbot falla con más frecuencia es la validación del dominio. Si se cumplen los puntos siguientes, la instalación suele terminar en pocos minutos.
- Los registros A y AAAA del dominio apuntan a la IP correcta del servidor (si existe un registro AAAA, el sitio también debe responder por IPv6)
- Los puertos 80 y 443 del servidor están abiertos en el cortafuegos
- Nginx o Apache están en marcha y hay un bloque de servidor o host virtual definido para el dominio
- Puede conectarse al servidor por SSH con un usuario con permisos sudo
- Si utiliza un proxy como Cloudflare, sabe cómo está configurado en la primera instalación
dig +short ornek.com A
dig +short www.ornek.com A
sudo ufw status
# Si utiliza Nginx
sudo ufw allow 'Nginx Full'Instalar Certbot paso a paso
El sitio oficial de Certbot, certbot.eff.org, recomienda el paquete snap para Ubuntu y Debian; así Certbot se mantiene actualizado con independencia de la distribución. Si no desea usar snap, también funcionan los paquetes apt de la propia distribución.
Con snap (recomendado)
Si en el sistema ya hay un paquete certbot instalado con apt, desinstálelo antes para evitar conflictos.
sudo apt remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --versionCon el paquete apt
Con este método también debe instalar el paquete del complemento correspondiente a su servidor web.
sudo apt update
# Para Nginx
sudo apt install certbot python3-certbot-nginx
# Para Apache
sudo apt install certbot python3-certbot-apacheObtener e instalar el certificado en el servidor
Gracias a su complemento, Certbot lee su configuración actual y, según los valores de server_name o ServerName, le pregunta para qué dominios quiere obtener el certificado. Lo más recomendable es incluir en el mismo certificado tanto el dominio sin www como la versión con www.
Durante el comando se le pide una dirección de correo y que acepte las condiciones de uso. Certbot publica un archivo temporal de validación en la ruta .well-known/acme-challenge y Let's Encrypt lo lee por el puerto 80 para comprobar que el dominio es suyo.
- Los archivos del certificado se guardan en /etc/letsencrypt/live/ornek.com/.
- fullchain.pem contiene el certificado del servidor junto con el intermedio; use este en el servidor web.
- privkey.pem es la clave privada; no la copie ni la comparta en ningún sitio.
sudo certbot --nginx -d ornek.com -d www.ornek.comsudo certbot --apache -d ornek.com -d www.ornek.comsudo certbot certonly --webroot -w /var/www/ornek.com/html \
-d ornek.com -d www.ornek.com¿Cómo configurar la renovación automática?
Los paquetes snap y apt añaden durante la instalación un temporizador de systemd o una tarea cron. Esta tarea se ejecuta varias veces al día y renueva los certificados que están a punto de caducar. Lo único que debe hacer es comprobar que la renovación funciona de verdad.
Como Let's Encrypt dejó de enviar correos de aviso de caducidad, conviene vigilar la fecha de vencimiento del certificado con su propia herramienta de monitorización. También puede definir un gancho de renovación (deploy hook) para que el servidor web lea el nuevo certificado tras cada renovación.
sudo certbot renew --dry-run
sudo certbot certificates
systemctl list-timers | grep -i certbot
# Hook que recarga Nginx tras cada renovación correcta
echo '#!/bin/sh
systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shRedirección a HTTPS y contenido mixto
Los complementos de Certbot para Nginx y Apache suelen añadir por usted la regla que redirige las peticiones HTTP a HTTPS. Si prefiere hacerlo a mano, utilice una redirección 301 permanente; así los buscadores trasladan el valor de las direcciones antiguas a la nueva.
En los alojamientos compartidos con Apache se hace lo mismo con el archivo .htaccess; las reglas detalladas están en nuestra guía de redirecciones con htaccess. Si tras la redirección la página sigue cargando por http:// alguna imagen, script o fuente, el navegador muestra un aviso de contenido mixto; sustituya esas direcciones por https o por rutas relativas.
server {
listen 80;
listen [::]:80;
server_name ornek.com www.ornek.com;
return 301 https://ornek.com$request_uri;
}HSTS y ajustes TLS seguros
Una vez que la redirección funciona, con la cabecera HSTS puede indicar al navegador que, a partir de ahora, abra su sitio solo por HTTPS. Esta cabecera impide que, después de la primera visita, alguien se interponga y degrade la conexión a HTTP.
No active HSTS con una duración larga a la ligera. Si alguno de sus subdominios aún no admite HTTPS, se cortará el acceso a esa dirección. Pruebe primero con un valor max-age corto y, si todo va bien, amplíe el plazo; añada las opciones includeSubDomains y preload solo cuando esté seguro de que todos los subdominios están listos.
Los complementos de Certbot para Nginx y Apache añaden un archivo de configuración con ajustes de protocolo TLS actuales y seguros. Mantenga desactivadas las versiones antiguas TLS 1.0 y 1.1; revisar periódicamente la configuración del servidor con herramientas de prueba públicas como SSL Labs le permite detectar a tiempo un ajuste débil que haya pasado inadvertido.
# Dentro del bloque de servidor 443
add_header Strict-Transport-Security "max-age=300" always;Verificación y errores frecuentes
No se conforme con el candado del navegador: verifique también la instalación desde la línea de comandos. Los comandos siguientes muestran quién emitió el certificado, su fecha de caducidad y la cadena de redirecciones.
| Error | Solución |
|---|---|
| Timeout during connect | El puerto 80 está cerrado o el DNS apunta a otro servidor; revise el cortafuegos y el registro A. |
| Unauthorized / 404 challenge | No se puede leer el archivo de validación; compruebe la ruta webroot y las reglas de redirección. |
| Too many certificates | Se han hecho demasiados intentos en poco tiempo; realice las pruebas con --dry-run o --staging. |
| Could not find a server block | La línea server_name no incluye el dominio; añádalo al bloque de servidor y pruebe con nginx -t. |
| Certificado antiguo en el navegador | El servidor web no se ha recargado; use el comando reload o el deploy hook. |
curl -I http://ornek.com
curl -I https://www.ornek.com
openssl s_client -connect ornek.com:443 -servername ornek.com </dev/null 2>/dev/null \
| openssl x509 -noout -issuer -datesCertificado comodín, Windows y paneles
Un certificado comodín (wildcard) con la forma *.ornek.com solo se obtiene mediante validación DNS. Si Certbot dispone de un complemento específico para su proveedor de DNS, la renovación es automática; los certificados obtenidos con --manual, en cambio, le obligan a añadir a mano el registro TXT cada vez.
Si utiliza Windows Server e IIS, puede lograr el mismo resultado con clientes de Windows compatibles con el protocolo ACME. Los paneles de alojamiento suelen ofrecer la compatibilidad con Let's Encrypt como una opción de un solo clic; en ese caso no necesita escribir ningún comando en el servidor.
HTTPS es solo una parte del trabajo de velocidad y seguridad. Si se aborda junto con HTTP/2, las cabeceras de caché y la compresión, se gana tanto en confianza como en rendimiento; en nuestros proyectos de diseño web SEO planificamos estas capas desde el principio.
sudo certbot certonly --manual --preferred-challenges dns \
-d ornek.com -d "*.ornek.com"Preguntas frecuentes
01¿Hay diferencia de seguridad entre un SSL gratuito y uno de pago?
En cuanto a la fuerza del cifrado no hay diferencia; ambos utilizan los mismos estándares. Los certificados de pago ofrecen servicios adicionales, como validación de la organización (OV, EV), póliza de garantía o soporte. Si no hay un requisito contractual corporativo, Let's Encrypt es suficiente para la mayoría de los sitios.
02¿Qué pasa si el certificado no se renueva?
Con un certificado caducado, los navegadores muestran al visitante un aviso de seguridad a pantalla completa y la mayoría de las personas abandonan el sitio. Además, dejan de funcionar las páginas de pago y las conexiones de API. Por eso hay que probar la renovación el día de la instalación y vigilar la fecha de vencimiento.
03¿Funciona Certbot si uso Cloudflare?
Funciona, pero con el proxy activo la validación HTTP a veces puede atascarse. Puede usar el propio certificado de origen de Cloudflare o ejecutar Certbot con validación DNS; elegir el modo SSL Full (strict) es el camino más seguro.
Un sitio instalado con Certbot, con la renovación probada y redirigido a HTTPS transmite confianza tanto al visitante como al buscador. Si quiere abordar a la vez el certificado, las redirecciones y los ajustes del servidor, eche un vistazo a nuestro servicio de gestión de velocidad y rendimiento o a nuestras soluciones de diseño web, que cubren todo el proceso. Si va a montar una tienda, también puede conocer las opciones de plataforma de e-commerce en las que gestionamos por usted el certificado y el servidor, y para cualquier duda puede escribirnos desde la página de contacto.


