Servidores y VPS

Cómo Instalar un certificado SSL en tu VPS paso a paso

Aprende a instalar un certificado SSL en tu servidor VPS con Let's Encrypt y Certbot, y activa HTTPS en minutos sin costo adicional.

Detailed view of Ethernet and VGA ports on a server highlighting connectivity features.

Para instalar SSL en un servidor VPS con Linux, la forma más rápida y gratuita es usar Let's Encrypt junto con la herramienta Certbot, que obtiene, instala y renueva el certificado de forma automática en menos de cinco minutos.

Esta guía te lleva paso a paso desde cero: primero preparamos el servidor, luego instalamos Certbot y finalmente configuramos la renovación automática. Los ejemplos cubren Apache y Nginx en Ubuntu/Debian y AlmaLinux/Rocky Linux.

¿Por qué necesitas SSL en tu VPS?

Un certificado SSL cifra la comunicación entre tu servidor y los visitantes, convirtiendo las URLs de http:// a https://. Las razones para instalarlo van más allá de la seguridad:

  • SEO: Google favorece los sitios con HTTPS en sus resultados de búsqueda.
  • Confianza del usuario: el candado en el navegador transmite credibilidad, especialmente en tiendas o formularios.
  • Obligatorio para APIs modernas: muchas APIs y servicios de pago rechazan conexiones no cifradas.
  • Cumplimiento normativo: GDPR, PCI-DSS y regulaciones mexicanas de datos personales exigen cifrado en tránsito.

Antes de empezar: prerrequisitos

Antes de correr Certbot, asegúrate de cumplir estos requisitos:

  • Tu dominio ya apunta a la IP de tu VPS (registro A o AAAA en tu DNS).
  • El servidor web (Apache o Nginx) está instalado y activo.
  • Los puertos 80 y 443 están abiertos en tu firewall.
  • Tienes acceso root o sudo al servidor.

Verifica que tu dominio resuelve correctamente antes de continuar:

dig +short tudominio.com

Debe devolver la IP de tu VPS. Si no lo hace, espera a que se propaguen los DNS antes de continuar — Certbot fallará si el dominio no resuelve a tu servidor.

Paso 1: Instala Certbot

Certbot es la herramienta oficial de Let's Encrypt para obtener y gestionar certificados SSL gratuitos.

En Ubuntu o Debian

sudo apt update
sudo apt install certbot python3-certbot-apache   # para Apache
# o
sudo apt install certbot python3-certbot-nginx    # para Nginx

En AlmaLinux, Rocky Linux o CentOS

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-apache   # para Apache
# o
sudo dnf install certbot python3-certbot-nginx    # para Nginx

Certbot también está disponible como snap en sistemas que lo soporten:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Paso 2: Obtén e instala el certificado SSL

Una vez instalado Certbot, obtener el certificado es un solo comando. Certbot se conecta a los servidores de Let's Encrypt, verifica que controlas el dominio (vía HTTP) e instala el certificado automáticamente.

Con Apache

sudo certbot --apache -d tudominio.com -d www.tudominio.com

Con Nginx

sudo certbot --nginx -d tudominio.com -d www.tudominio.com

Certbot te hará dos preguntas:

  1. Tu dirección de correo electrónico (para avisos de expiración).
  2. Si quieres redirigir automáticamente todo el tráfico HTTP a HTTPS — elige sí (opción 2).

Al terminar, tu sitio ya estará sirviendo HTTPS. Puedes verificarlo con:

curl -I https://tudominio.com

Busca la línea HTTP/2 200 en la respuesta.

Paso 3: Verifica la configuración SSL

Certbot modifica automáticamente la configuración del servidor web. Conviene revisar que todo quedó bien:

Prueba con SSL Labs

Visita ssllabs.com/ssltest e ingresa tu dominio. Un certificado de Let's Encrypt bien configurado debe obtener calificación A o A+.

Revisa la config de Apache

sudo apache2ctl configtest   # Debian/Ubuntu
sudo apachectl configtest    # RHEL

Revisa la config de Nginx

sudo nginx -t

Si hay errores, revisa los archivos de virtual host que Certbot modificó (generalmente en /etc/apache2/sites-enabled/ o /etc/nginx/sites-enabled/).

Paso 4: Configura la renovación automática

Los certificados de Let's Encrypt son válidos por 90 días. Certbot incluye un timer systemd (o cron job) que renueva automáticamente los certificados antes de que expiren.

Verifica que el timer está activo:

sudo systemctl status certbot.timer   # Debian/Ubuntu
sudo systemctl status certbot-renew.timer   # RHEL

Prueba el proceso de renovación sin hacer cambios reales:

sudo certbot renew --dry-run

Si el dry-run termina sin errores, la renovación automática funcionará correctamente. Let's Encrypt renovará el certificado cuando queden menos de 30 días de vigencia.

Aspecto Let's Encrypt (Certbot) Certificado comercial
Costo Gratuito $10–$300+ USD/año
Validez 90 días (auto-renovable) 1–2 años
Tipo de validación DV (dominio) DV, OV o EV
Wildcard Sí (con DNS challenge) Sí
Garantía financiera No Sí (varía)

Para la mayoría de sitios web, blogs, tiendas en línea y aplicaciones, Let's Encrypt es más que suficiente. Un certificado comercial con validación extendida (EV) solo se justifica si tu marca necesita mostrar el nombre de la empresa en la barra del navegador.

Si administras varios dominios en tu VPS, puedes consultar nuestra sección de guías para servidores VPS donde encontrarás artículos sobre configuración de stacks LAMP, Nginx y gestión de múltiples sitios.

Conclusiones clave

  • Let's Encrypt y Certbot permiten instalar SSL en tu VPS de forma gratuita y en minutos.
  • Antes de ejecutar Certbot, verifica que el dominio resuelve a la IP del servidor.
  • Usa el plugin nativo (--apache o --nginx) para que Certbot configure el servidor web automáticamente.
  • Los certificados de Let's Encrypt duran 90 días pero se renuevan solos vía systemd timer.
  • Comprueba con certbot renew --dry-run que la renovación automática funciona.
  • Para certificados wildcard o múltiples subdominios usa el challenge DNS (--dns-...).

¿Necesitas ayuda para configurar HTTPS en tu VPS o gestionar múltiples dominios? El equipo de elenlace.com ofrece soporte técnico especializado para que tu infraestructura esté lista y segura desde el primer día.

Preguntas frecuentes

¿Let's Encrypt es tan seguro como un certificado de pago?

Sí. El nivel de cifrado es idéntico. La diferencia entre un certificado gratuito DV y uno comercial DV es solo el precio y la duración. Los certificados OV y EV ofrecen validación adicional de la organización, pero no cifrado superior.

¿Qué pasa si Certbot no puede renovar el certificado?

Let's Encrypt te enviará avisos por correo electrónico cuando queden 20 y 7 días para la expiración. Si el dry-run falla, revisa que el puerto 80 esté abierto y que el dominio siga resolviendo a tu servidor. Mientras tanto, el sitio seguirá funcionando con el certificado existente hasta que expire.

¿Puedo usar un certificado SSL para múltiples subdominios?

Sí. Puedes incluir varios dominios y subdominios en el mismo comando Certbot con múltiples flags -d. Para un wildcard que cubra todos los subdominios de un dominio (por ejemplo *.tudominio.com), necesitas usar el challenge DNS en lugar del HTTP.

¿Tengo que reiniciar Apache o Nginx después de instalar el certificado?

Certbot lo hace automáticamente cuando usa los plugins --apache o --nginx. Si instalas el certificado de forma manual, sí necesitas recargar el servidor (systemctl reload apache2 o systemctl reload nginx) para que el cambio tome efecto.

¿Prefieres que lo hagamos por ti? En El Enlace resolvemos hosting y desarrollo web profesional.

Recursos útiles

Otros proveedores y guías que vale la pena comparar:

← Todos