// Índice de contenidos
Configurar SSL en HestiaCP es tan simple como marcar una casilla. Let’s Encrypt te proporciona certificados gratuitos que se renuevan automáticamente, y HestiaCP gestiona todo el proceso por ti.
En 2026, HTTPS no es opcional. Google penaliza sitios sin SSL en los resultados de búsqueda, los navegadores muestran advertencias aterradoras a los visitantes, y muchas APIs modernas simplemente no funcionan sin conexión segura.
He configurado SSL en cientos de dominios con HestiaCP y el proceso es muy directo. En esta guía te explico cómo activar Let’s Encrypt para webs, email y el propio panel, además de cómo solucionar los errores más frecuentes.
Requisitos previos para SSL en HestiaCP
Antes de activar SSL, verifica estos puntos:
1. El dominio debe apuntar al servidor
Let’s Encrypt valida que controlas el dominio haciendo una petición HTTP. El dominio debe resolver a la IP de tu servidor:
dig tudominio.com +short
Debe mostrar la IP de tu servidor. Si no coincide, actualiza los registros DNS y espera la propagación (puede tardar hasta 48 horas, aunque normalmente son minutos).
2. Puertos 80 y 443 abiertos
Let’s Encrypt necesita acceso a estos puertos:
# Verificar puertos
ss -tlnp | grep -E ':80|:443'
Si usas firewall (UFW, iptables), asegúrate de que están permitidos:
# UFW
ufw allow 80/tcp
ufw allow 443/tcp
# iptables
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
3. Email válido configurado en HestiaCP
Let’s Encrypt envía notificaciones de renovación. Verifica que el usuario admin tiene un email real:
- Inicia sesión como admin
- Haz clic en tu nombre de usuario arriba
- Verifica/actualiza el campo Email
- Guarda
4. Sin proxy de Cloudflare (temporalmente)
Si usas Cloudflare, el proxy (nube naranja) debe estar desactivado mientras solicitas el certificado. Después puedes reactivarlo.
Activar SSL para un dominio web
Método 1: Desde el panel (recomendado)
- Inicia sesión en HestiaCP con el usuario que tiene el dominio
- Ve a la sección Web
- Haz clic en el icono de editar (lápiz) del dominio
- En las opciones, marca:
- ✅ Enable SSL for this domain
- ✅ Use Let’s Encrypt to obtain SSL certificate
- Opcionalmente marca:
- ✅ Enable automatic HTTPS redirection
- ✅ Enable HTTP Strict Transport Security (HSTS)
- Haz clic en Save
El certificado se genera en segundos. Verás un mensaje de confirmación y los datos del certificado (fecha de emisión, expiración, etc.).
Método 2: Por línea de comandos (CLI)
Para automatizar o cuando prefieras SSH:
# Activar SSL para un dominio
v-add-letsencrypt-domain usuario tudominio.com
# Verificar el certificado
v-list-web-domain usuario tudominio.com
Incluir subdominios (www)
Por defecto, HestiaCP incluye el alias www en el certificado si está configurado. Verifica en la edición del dominio que Alias contiene www.tudominio.com.
Si necesitas más subdominios en el mismo certificado:
v-add-letsencrypt-domain usuario tudominio.com "www.tudominio.com,blog.tudominio.com,tienda.tudominio.com"
Verificar que funciona
Accede a https://tudominio.com y verifica:
- El candado verde en el navegador
- Sin advertencias de seguridad
- Certificado emitido por “Let’s Encrypt”
También puedes usar herramientas online:
- SSL Labs - Análisis completo
- Why No Padlock - Detecta contenido mixto
Activar SSL para email
El correo electrónico también necesita SSL para conexiones seguras IMAP/SMTP.
Desde el panel
- Ve a la sección Mail
- Haz clic en editar del dominio de correo
- Marca:
- ✅ Enable SSL for this domain
- ✅ Use Let’s Encrypt to obtain SSL certificate
- Guarda
Qué incluye el certificado de email
El certificado de email cubre:
mail.tudominio.com- Servidor IMAP/POP3/SMTPwebmail.tudominio.com- Acceso webmail (Roundcube)
Configurar clientes de correo con SSL
Después de activar SSL, actualiza la configuración de clientes:
| Protocolo | Servidor | Puerto | Seguridad |
|---|---|---|---|
| IMAP | mail.tudominio.com | 993 | SSL/TLS |
| POP3 | mail.tudominio.com | 995 | SSL/TLS |
| SMTP | mail.tudominio.com | 465 | SSL/TLS |
| SMTP (alternativo) | mail.tudominio.com | 587 | STARTTLS |
Activar SSL para el panel HestiaCP
El propio panel de administración también debería usar HTTPS.
Requisitos
Necesitas un dominio/subdominio apuntando al servidor, por ejemplo:
panel.tudominio.comadmin.tudominio.comhestia.tudominio.com
Configurar por CLI
# Cambiar hostname y generar certificado
v-change-sys-hostname panel.tudominio.com
v-add-letsencrypt-host
Verificar
Accede a https://panel.tudominio.com:8083 (o el puerto que uses).
Si sigues accediendo por IP, verás advertencia de certificado porque el certificado es para el hostname, no para la IP.
Forzar redirección HTTPS
Una vez SSL activo, debes forzar que todo el tráfico use HTTPS.
Método 1: Desde HestiaCP (recomendado)
- Ve a Web → tu dominio → Editar
- Marca Enable automatic HTTPS redirection
- Guarda
HestiaCP configura automáticamente la redirección en Nginx/Apache.
Método 2: En WordPress
Si usas WordPress, además de la redirección del servidor:
- Ve a Ajustes → Generales
- Cambia ambas URLs a
https://:- Dirección de WordPress (URL)
- Dirección del sitio (URL)
- Guarda
En wp-config.php, añade:
define('FORCE_SSL_ADMIN', true);
// Si usas proxy o balanceador
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$_SERVER['HTTPS'] = 'on';
}
Método 3: Por .htaccess (Apache)
Si necesitas control manual:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Método 4: Por Nginx
En el template de Nginx, añadir en el bloque server del puerto 80:
return 301 https://$host$request_uri;
Configurar HSTS (HTTP Strict Transport Security)
HSTS indica a los navegadores que siempre usen HTTPS para tu dominio, incluso si el usuario escribe http://.
Activar HSTS en HestiaCP
- Ve a Web → tu dominio → Editar
- Marca Enable HTTP Strict Transport Security (HSTS)
- Guarda
Configuración HSTS recomendada
HestiaCP configura HSTS con valores sensatos por defecto. Si necesitas personalizar, el header típico es:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Parámetros:
| Parámetro | Valor | Significado |
|---|---|---|
| max-age | 31536000 | 1 año en segundos |
| includeSubDomains | - | Aplica a todos los subdominios |
| preload | - | Permite inclusión en listas de preload |
Precauciones con HSTS
- No actives si no estás seguro de mantener SSL siempre
- Una vez activado, los navegadores recordarán usar HTTPS durante
max-age - Si desactivas SSL, los usuarios no podrán acceder (hasta que expire)
- Empieza con
max-agebajo (1 hora = 3600) para probar
Usar certificados SSL propios
Si tienes certificados comerciales (Comodo, DigiCert, etc.) o wildcard:
Desde el panel
- Ve a Web → tu dominio → Editar
- Marca Enable SSL for this domain
- NO marques Let’s Encrypt
- Pega tu certificado en los campos:
- SSL Certificate - El certificado (.crt)
- SSL Key - La clave privada (.key)
- SSL Certificate Authority - El certificado intermedio/CA bundle
- Guarda
Formato de los archivos
Certificado (.crt):
-----BEGIN CERTIFICATE-----
MIIFxTCCBK2gAwIBAgISA...
-----END CERTIFICATE-----
Clave privada (.key):
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA...
-----END RSA PRIVATE KEY-----
CA Bundle (intermedio):
-----BEGIN CERTIFICATE-----
(certificado intermedio 1)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(certificado intermedio 2)
-----END CERTIFICATE-----
Certificados Wildcard
Los wildcards (*.tudominio.com) cubren todos los subdominios. Son útiles si tienes muchos subdominios, pero Let’s Encrypt también los soporta (requiere validación DNS).
Para wildcard con Let’s Encrypt:
v-add-letsencrypt-domain usuario tudominio.com "" yes
Esto requiere que HestiaCP gestione el DNS del dominio.
SSL sin complicaciones
El VPS HestiaCP Administrado incluye SSL automático para todos tus dominios. Sin configurar nada, renovación automática incluida.
Configurar SSL con Cloudflare
Cloudflare añade una capa extra de complejidad porque actúa como proxy.
Opción 1: SSL Flexible (no recomendado)
- Cloudflare → HTTPS → Tu servidor → HTTP
- No es realmente seguro (la conexión servidor-Cloudflare no está cifrada)
Opción 2: SSL Full (mínimo recomendado)
- Cloudflare → HTTPS → Tu servidor → HTTPS (certificado cualquiera)
- Acepta certificados autofirmados
- Mejor que Flexible, pero no verifica el certificado
Opción 3: SSL Full (Strict) (recomendado)
- Cloudflare → HTTPS → Tu servidor → HTTPS (certificado válido)
- Requiere Let’s Encrypt u otro certificado válido en tu servidor
- Máxima seguridad
Proceso para Let’s Encrypt + Cloudflare
- Desactiva temporalmente el proxy de Cloudflare (nube naranja → gris)
- Espera 5 minutos para propagación DNS
- Solicita el certificado en HestiaCP
- Reactiva el proxy de Cloudflare
- Configura SSL Full (Strict) en Cloudflare
Opción alternativa: Origin Certificate
Cloudflare ofrece certificados de origen gratuitos válidos por 15 años:
- En Cloudflare, ve a SSL/TLS → Origin Server
- Crea un Origin Certificate
- Copia el certificado y clave privada
- Pégalos en HestiaCP como certificado propio
- En el campo CA, usa este certificado de Cloudflare
Renovación automática de certificados
Let’s Encrypt emite certificados válidos por 90 días. HestiaCP los renueva automáticamente.
Cómo funciona la renovación
- HestiaCP ejecuta un cron job diario
- Renueva certificados que expiran en menos de 30 días
- Si falla, reintenta automáticamente
- Envía email de aviso si hay problemas
Verificar estado de renovación
# Ver todos los certificados y fechas
v-list-letsencrypt-users
# Ver certificado específico
openssl x509 -in /home/usuario/conf/web/tudominio.com/ssl/tudominio.com.crt -noout -dates
Forzar renovación manual
Si necesitas renovar antes de tiempo:
v-update-letsencrypt-ssl usuario tudominio.com
Logs de renovación
Si hay problemas, revisa los logs:
cat /var/log/hestia/LE-usuario-tudominio.com.log
Errores comunes y soluciones
Error: “Let’s Encrypt validation status 400”
Causa: Let’s Encrypt no puede verificar el dominio.
Soluciones:
-
Verifica que el dominio apunta a la IP correcta:
dig tudominio.com +short -
Si usas Cloudflare, desactiva el proxy temporalmente
-
Verifica que puerto 80 está abierto:
curl -I http://tudominio.com/.well-known/acme-challenge/test
Error: “Rate limit exceeded”
Causa: Demasiadas solicitudes a Let’s Encrypt.
Límites de Let’s Encrypt:
- 50 certificados por dominio registrado por semana
- 5 duplicados por semana
- 300 nuevos pedidos por cuenta por 3 horas
Solución: Espera unas horas o usa el entorno staging para pruebas.
Error: “DNS problem: NXDOMAIN”
Causa: El dominio no existe o no está propagado.
Solución:
- Verifica que el dominio está registrado
- Verifica los nameservers
- Espera propagación DNS (hasta 48h)
Contenido mixto (Mixed Content)
Síntoma: Candado con advertencia, algunos recursos cargan por HTTP.
Causa: La página carga recursos (imágenes, scripts, CSS) por HTTP en lugar de HTTPS.
Solución para WordPress:
- Instala el plugin “Better Search Replace”
- Busca:
http://tudominio.com - Reemplaza por:
https://tudominio.com - Ejecuta en todas las tablas
Solución general:
- Usa Why No Padlock para identificar recursos
- Actualiza las URLs en tu código/base de datos
El certificado no cubre www
Causa: El alias www no estaba configurado al solicitar SSL.
Solución:
- Ve a Web → tu dominio → Editar
- Añade
www.tudominio.comen Aliases - Guarda
- Vuelve a solicitar el certificado Let’s Encrypt
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Causa: Configuración SSL/TLS incompatible.
Solución: Actualiza la configuración de Nginx/Apache para soportar protocolos modernos:
# Verificar configuración SSL
ssl-config-generator.mozilla.org
¿Problemas con SSL?
El soporte técnico del VPS HestiaCP Administrado te ayuda con cualquier problema de certificados. Sin dolores de cabeza.
Preguntas frecuentes
¿Let's Encrypt es seguro para ecommerce?
Sí. Let's Encrypt ofrece el mismo nivel de cifrado que los certificados de pago. La diferencia está en la validación (DV vs OV/EV) y la garantía, no en la seguridad del cifrado.
¿Cuántos dominios puedo proteger con Let's Encrypt?
Sin límite práctico. Cada dominio obtiene su propio certificado. Let's Encrypt tiene límites de rate, pero son muy altos para uso normal.
¿Qué pasa si el certificado expira?
Los visitantes verán una advertencia de seguridad y muchos navegadores bloquearán el acceso. HestiaCP renueva automáticamente, pero si falla, recibirás emails de aviso.
¿Puedo usar SSL sin dominio (solo IP)?
No con Let's Encrypt. Necesitas un dominio. Para desarrollo/pruebas con IP, puedes usar certificados autofirmados (mostrarán advertencia).
¿Let's Encrypt funciona con subdominios?
Sí. Puedes incluir múltiples subdominios en un certificado SAN, o usar wildcards (*.tudominio.com) si gestionas DNS en HestiaCP.
¿Cómo verifico que HSTS está activo?
Ejecutando `curl -I https://tudominio.com | grep -i strict`. Debe mostrar: `Strict-Transport-Security: max-age=...`
¿Qué diferencia hay entre SSL y TLS?
SSL está obsoleto. TLS es el sucesor. Cuando decimos 'SSL' hoy, realmente hablamos de TLS. HestiaCP usa TLS 1.2 y 1.3 (las versiones seguras actuales).
Conclusión
Configurar SSL en HestiaCP con Let’s Encrypt es un proceso sencillo que proporciona seguridad profesional sin coste. Los pasos clave son:
- Verificar que el dominio apunta al servidor
- Activar SSL desde el panel
- Forzar redirección HTTPS
- Opcionalmente, activar HSTS
La renovación automática garantiza que tus certificados nunca expiren si todo está correctamente configurado. Si usas Cloudflare, recuerda desactivar el proxy temporalmente durante la solicitud inicial.
Para evitar cualquier complicación, el VPS HestiaCP Administrado de Avantys incluye SSL automático para todos tus dominios, configurado y mantenido por nosotros.
Guías relacionadas
- Cómo instalar HestiaCP en Ubuntu
- Instalar WordPress en HestiaCP
- Configurar Email en HestiaCP
- Configurar Backups en HestiaCP
- Seguridad en HestiaCP
- ¿Qué es HestiaCP?
VPS HestiaCP Administrado
Tu servidor HestiaCP con soporte técnico profesional. Nos encargamos de la administración para que tú te dediques a tus clientes.
VPS HestiaCP Administrado
La potencia de un VPS con el panel HestiaCP, montado y gestionado por nosotros.