Para configurar SSL en un servidor VPS instala Certbot, ejecuta certbot --nginx o certbot --apache según tu servidor web, y Let's Encrypt emitirá y configurará un certificado HTTPS gratuito en menos de cinco minutos. La renovación automática se configura sola.
Esta guía cubre el proceso completo: requisitos previos, instalación de Certbot, obtención del certificado, verificación y renovación automática. Al final tendrás HTTPS activo en tu dominio sin pagar ni un peso por el certificado.
Requisitos previos
Antes de ejecutar Certbot, asegúrate de cumplir estos puntos:
- Dominio apuntando a tu VPS. El registro A (y AAAA si usas IPv6) debe apuntar a la IP pública de tu servidor. Let's Encrypt lo verifica durante la emisión.
- Puerto 80 abierto. Certbot usa el método HTTP-01 por defecto, que requiere que el puerto 80 sea accesible desde internet.
- Servidor web funcionando. Nginx o Apache deben estar instalados y sirviendo el dominio.
- Acceso root o sudo. Certbot necesita escribir en directorios del sistema.
Comprueba que el dominio resuelve correctamente antes de continuar:
dig +short tudominio.com
El resultado debe ser la IP pública de tu VPS.
Paso 1 — Instalar Certbot
La forma recomendada de instalar Certbot es mediante Snap, el método oficial de la Electronic Frontier Foundation (EFF). Snap está disponible en Ubuntu por defecto; en otras distribuciones puedes instalarlo primero.
Instalación con Snap (recomendado)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Instalación con apt (Ubuntu/Debian alternativo)
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
# o para Apache:
sudo apt install certbot python3-certbot-apache -y
Instalación con dnf (AlmaLinux/Rocky Linux)
sudo dnf install epel-release -y
sudo dnf install certbot python3-certbot-nginx -y
Verifica la instalación:
certbot --version
Paso 2 — Obtener el Certificado SSL
Certbot detecta automáticamente los bloques de servidor (virtual hosts) configurados en tu servidor web y modifica la configuración para activar HTTPS.
Con Nginx
sudo certbot --nginx -d tudominio.com -d www.tudominio.com
Con Apache
sudo certbot --apache -d tudominio.com -d www.tudominio.com
Certbot te pedirá:
- Tu correo electrónico (para avisos de expiración y emergencias).
- Aceptar los términos de servicio.
- Si deseas recibir correos de la EFF (opcional).
- Si quieres redirigir todo el tráfico HTTP a HTTPS automáticamente — elige sí.
Al finalizar, verás un mensaje de éxito con la ruta donde se guardaron los certificados (generalmente /etc/letsencrypt/live/tudominio.com/).
Si buscas una agencia especializada en hosting y seguridad web que configure esto por ti, el equipo de elenlace.com puede encargarse de todo el proceso.
Paso 3 — Verificar que HTTPS Funciona
Abre tu navegador y accede a https://tudominio.com. Deberías ver el candado en la barra de dirección. También puedes verificar desde la terminal:
curl -I https://tudominio.com
Busca la línea HTTP/2 200 (o HTTP/1.1 200 OK). Si ves un error de certificado, revisa:
- Que el DNS haya propagado correctamente (
dig +short tudominio.com). - Que el puerto 443 esté abierto en tu firewall.
- Los logs de Certbot en
/var/log/letsencrypt/letsencrypt.log.
Para una verificación más completa, usa la herramienta de SSL Labs (ssllabs.com/ssltest/) — debería darte una calificación A o A+.
Paso 4 — Renovación Automática
Los certificados de Let's Encrypt caducan cada 90 días. Certbot instala un timer de systemd (o un cron job) que intenta renovar automáticamente todos los certificados dos veces al día.
Verifica que el timer esté activo:
sudo systemctl status snap.certbot.renew.timer
# o si instalaste con apt:
sudo systemctl status certbot.timer
Prueba el proceso de renovación sin emitir un certificado real:
sudo certbot renew --dry-run
Si el dry run termina sin errores, la renovación automática está funcionando correctamente. No necesitas hacer nada más.
| Situación | Acción |
|---|---|
| Dry run exitoso | No hagas nada; la renovación es automática. |
| Dry run falla (puerto 80 bloqueado) | Abre el puerto 80 en el firewall durante la renovación. |
| Dominio cambia de IP | Actualiza el DNS antes de la próxima renovación. |
| Certificado ya expirado | Ejecuta sudo certbot renew --force-renewal. |
Puedes revisar más guías de configuración de infraestructura en nuestra sección de servidores VPS.
Paso 5 — Endurecer la Configuración TLS (Opcional pero Recomendado)
Certbot configura TLS con ajustes razonables, pero puedes mejorar la calificación de seguridad desactivando protocolos obsoletos.
En Nginx
Edita el bloque del servidor y asegúrate de tener:
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;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
En Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
El encabezado HSTS (Strict-Transport-Security) le dice al navegador que siempre use HTTPS para tu dominio, incluso si el usuario escribe http://. Es una defensa efectiva contra ataques de downgrade.
Si quieres que tu proyecto web tenga la mejor configuración de seguridad desde el inicio, elenlace.com ofrece configuración profesional de servidores y hosting administrado.
Conclusiones clave
- Let's Encrypt emite certificados SSL gratuitos válidos 90 días; Certbot los renueva automáticamente.
- Instala Certbot vía Snap para tener siempre la versión más actualizada.
- Un solo comando (
certbot --nginxocertbot --apache) configura HTTPS y redirige HTTP a HTTPS. - Verifica la renovación automática con
certbot renew --dry-rundespués de instalar. - Añade HSTS y desactiva TLS 1.0/1.1 para obtener calificación A+ en SSL Labs.
Con estos pasos tu VPS sirve contenido cifrado de forma confiable y sin costo de licencia. Para hosting administrado con SSL ya configurado de fábrica, visita elenlace.com y conoce nuestros planes.
Preguntas frecuentes
¿Los certificados de Let's Encrypt son seguros para sitios de comercio electrónico?
Sí. Let's Encrypt emite certificados Domain Validated (DV) con el mismo nivel de cifrado que los certificados de pago. La diferencia con los certificados OV/EV es la validación de identidad empresarial, no la seguridad del cifrado. Para la mayoría de los e-commerce, DV es suficiente.
¿Qué pasa si el certificado expira antes de renovarse?
Los navegadores mostrarán una advertencia de seguridad y bloquearán el acceso al sitio. Para evitarlo, asegúrate de que el timer de renovación esté activo y que el puerto 80 esté abierto. Let's Encrypt también envía correos de aviso a los 20 y 10 días antes de la expiración.
¿Puedo instalar el mismo certificado en múltiples dominios?
Sí. Certbot acepta varios dominios con el flag -d. Un solo certificado puede cubrir hasta 100 nombres de dominio (SAN). También puedes usar certificados wildcard (*.tudominio.com) usando el método DNS-01 en lugar de HTTP-01.
¿Certbot funciona con cualquier servidor web?
Certbot tiene plugins nativos para Nginx y Apache. Para otros servidores (Caddy, HAProxy, etc.) puedes usar el modo certonly --standalone o certonly --webroot para obtener el certificado y configurar el servidor manualmente.
Para saber más
Otros proveedores y guías que vale la pena comparar: