Configurar Dominio Personalizado y SSL en n8n: Guía 2026

Configurar dominio personalizado y SSL en n8n es el paso más importante después de instalar n8n en tu VPS. Acceder a tu instancia a través de https://n8n.tuempresa.com en lugar de una IP con puerto no

Written by: Luis Hernandez

Published on: noviembre 3, 2025

Configurar dominio personalizado y SSL en n8n es el paso más importante después de instalar n8n en tu VPS. Acceder a tu instancia a través de https://n8n.tuempresa.com en lugar de una IP con puerto no solo es más profesional, sino que es obligatorio para que los webhooks funcionen con servicios como Google, Stripe o WhatsApp. En esta guía te explico paso a paso cómo configurar dominio personalizado y SSL en n8n desde cero, incluyendo DNS, certificado HTTPS gratuito con Let’s Encrypt, Nginx como reverse proxy y las variables de entorno necesarias.

¿Por qué necesitas configurar dominio personalizado y SSL en n8n?

Antes de meternos en los pasos técnicos, es importante que entiendas por qué esto no es opcional si vas en serio con n8n. Hay razones tanto técnicas como de negocio que hacen imprescindible tener un dominio personalizado con SSL:

  • Webhooks funcionales: Los webhooks necesitan una URL pública con HTTPS para recibir peticiones de servicios externos. Sin SSL, simplemente no funcionan con la mayoría de plataformas.
  • Compatibilidad con servicios: Google, Stripe, WhatsApp Business, Slack y muchos otros servicios rechazan webhooks HTTP sin SSL. Es un requisito de seguridad no negociable.
  • Imagen profesional: Es mucho más profesional y fácil de recordar n8n.tuempresa.com que 143.198.45.12:5678. Si trabajas con clientes o equipos, la diferencia es enorme.
  • Certificados gratuitos: Los certificados SSL son completamente gratuitos con Let’s Encrypt, así que no hay excusa para no usarlos.
  • Seguridad real: HTTPS encripta toda la comunicación entre tu navegador y el servidor, protegiendo credenciales y datos sensibles de tus automatizaciones.
¿Por qué necesitas configurar dominio personalizado y SSL en n8n?

Requisitos previos para configurar dominio personalizado y SSL en n8n

Antes de empezar, asegúrate de tener lo siguiente listo:

  • Un VPS con n8n instalado y funcionando (puede ser con Docker o instalación nativa). Si aún no lo tienes, revisa primero nuestra guía de instalación de n8n.
  • Acceso root o sudo al servidor vía SSH.
  • Un dominio o subdominio disponible para asignar a n8n.
  • Acceso al panel DNS de tu proveedor de dominio (Namecheap, GoDaddy, Cloudflare, etc.).
  • Los puertos 80 y 443 accesibles desde internet en tu VPS.

Si cumples con todo esto, el proceso completo te va a tomar entre 15 y 25 minutos. Vamos a ello.

Paso 1: Comprar o elegir un dominio para n8n

Si no tienes un dominio, puedes comprar uno en Namecheap, GoDaddy o directamente en tu proveedor de hosting. El costo típico es de 10-15 USD al año para un .com.

Sin embargo, la opción más práctica es usar un subdominio de un dominio que ya tengas. Por ejemplo, si ya eres dueño de tuempresa.com, puedes crear n8n.tuempresa.com sin ningún costo adicional. Esta es la opción que recomiendo porque:

  • No pagas nada extra
  • Es fácil de recordar y organizar
  • Puedes crear subdominios ilimitados para diferentes servicios (n8n.tuempresa.com, api.tuempresa.com, etc.)

Paso 2: Configurar los registros DNS – El paso clave

Este es uno de los pasos más importantes al configurar dominio personalizado y SSL en n8n. Necesitas crear un registro DNS de tipo A que apunte tu dominio (o subdominio) a la IP pública de tu VPS:

TipoNombreValorTTL
An8nIP_DE_TU_VPS300

Sustituye IP_DE_TU_VPS por la IP pública real de tu servidor. Si estás usando el dominio raíz en lugar de un subdominio, pon @ en el campo «Nombre».

Los cambios DNS pueden tardar entre 5 minutos y 48 horas en propagarse, aunque en la práctica normalmente son efectivos en menos de 30 minutos. Verifica que el DNS apunta correctamente ejecutando este comando desde tu terminal:

dig n8n.tudominio.com +short
# Debe devolver la IP de tu VPS

También puedes usar herramientas online como dnschecker.org para verificar la propagación DNS desde múltiples ubicaciones geográficas. No continúes al siguiente paso hasta que el DNS esté propagado correctamente.

Paso 3: Configurar el firewall del VPS

Para que el tráfico web llegue a tu servidor, necesitas asegurarte de que los puertos 80 (HTTP) y 443 (HTTPS) estén abiertos. Si usas UFW (el firewall por defecto en Ubuntu), ejecuta estos comandos:

ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

El puerto 80 es necesario temporalmente para que Certbot pueda verificar la propiedad del dominio. Después de obtener el certificado SSL, todo el tráfico se redirigirá automáticamente al puerto 443 (HTTPS).

Importante: Si tu VPS está en proveedores como DigitalOcean, AWS o Google Cloud, también necesitas abrir estos puertos en el firewall del panel de control del proveedor, no solo en UFW.

Paso 4: Instalar Nginx y Certbot en tu servidor

Nginx actuará como reverse proxy, recibiendo las peticiones en los puertos 80/443 y redirigiéndolas internamente al puerto 5678 donde corre n8n. Certbot se encargará de obtener y renovar el certificado SSL automáticamente.

apt update
apt install nginx certbot python3-certbot-nginx -y

Verifica que Nginx se instaló correctamente y está corriendo:

systemctl status nginx

Deberías ver el estado «active (running)». Si accedes a la IP de tu VPS desde un navegador, deberías ver la página de bienvenida de Nginx.

Paso 5: Configurar Nginx como reverse proxy para n8n

Ahora viene la parte central de cómo configurar dominio personalizado y SSL en n8n: crear el archivo de configuración de Nginx que conecta tu dominio con la instancia de n8n.

Crea el archivo de configuración:

nano /etc/nginx/sites-available/n8n

Pega el siguiente contenido, reemplazando n8n.tudominio.com por tu dominio real:

server {
    listen 80;
    server_name n8n.tudominio.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Soporte WebSockets (obligatorio para n8n)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Nota importante: El soporte de WebSockets es obligatorio para n8n. Sin las líneas de Upgrade y Connection, la interfaz de n8n no funcionará correctamente: verás errores de conexión y la ejecución de workflows en tiempo real fallará.

Activa la configuración y recarga Nginx:

ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

El comando nginx -t verifica que la configuración no tiene errores de sintaxis. Si ves «syntax is ok» y «test is successful», estás listo para continuar.

Paso 5: Configurar Nginx como reverse proxy para n8n

Paso 6: Obtener el certificado SSL gratuito con Let’s Encrypt

Este es el momento clave. Con el dominio ya apuntando al servidor y Nginx configurado, obtén tu certificado SSL gratuito con un solo comando:

certbot --nginx -d n8n.tudominio.com

Certbot te va a pedir:

  1. Tu email – para notificaciones de renovación del certificado
  2. Aceptar los términos de servicio – escribe «Y»
  3. Redirigir HTTP a HTTPS – elige «sí» (opción 2). Esto es fundamental para que todo el tráfico use HTTPS automáticamente

El certificado SSL gratuito de Let’s Encrypt tiene validez de 90 días. Certbot instala automáticamente un cron job que lo renueva antes de que expire, así que no tienes que preocuparte por renovaciones manuales.

Si todo salió bien, verás un mensaje de «Congratulations!» confirmando que el certificado se instaló correctamente.

Paso 7: Configurar las variables de entorno de n8n para SSL

Con el dominio personalizado y SSL ya funcionando a nivel de servidor, ahora necesitas decirle a n8n que use estas nuevas URLs. Actualiza las variables de entorno en tu archivo docker-compose.yml o .env:

# En tu docker-compose.yml o archivo .env
N8N_HOST=n8n.tudominio.com
N8N_PROTOCOL=https
N8N_PORT=5678
WEBHOOK_URL=https://n8n.tudominio.com/

Vamos a desglosar cada variable para que entiendas qué hace:

  • N8N_HOST: El dominio donde está accesible n8n (sin protocolo ni puerto)
  • N8N_PROTOCOL: Debe ser https ahora que tienes SSL configurado
  • N8N_PORT: El puerto interno donde n8n escucha (Nginx hace el proxy)
  • WEBHOOK_URL: Esta es la variable más crítica. Determina la URL base que n8n usa para generar las URLs de todos los webhooks. Sin esta variable configurada correctamente, los webhooks mostrarán URLs incorrectas con HTTP o con la IP en lugar del dominio

Reinicia n8n para aplicar los cambios:

docker compose down && docker compose up -d

Pro tip: Usa docker compose down && up en lugar de solo restart para asegurarte de que las variables de entorno se recarguen completamente.

Paso 7: Configurar las variables de entorno de n8n para SSL

Cómo verificar que el SSL funciona correctamente en n8n

Después de configurar dominio personalizado y SSL en n8n, es crucial verificar que todo funciona. Accede a https://n8n.tudominio.com desde tu navegador y comprueba lo siguiente:

  • ✅ El candado verde (o de seguridad) aparece en la barra de direcciones
  • ✅ Al hacer clic en el candado, el certificado muestra que fue emitido por Let’s Encrypt
  • ✅ n8n carga correctamente sin errores en la consola del navegador
  • ✅ Puedes iniciar sesión y navegar por la interfaz sin problemas

Además, prueba específicamente los webhooks: crea un nodo Webhook en cualquier workflow y verifica que la URL generada sea https://n8n.tudominio.com/webhook/... (con HTTPS y tu dominio, no la IP).

Renovación automática del certificado SSL

Una de las ventajas de usar Certbot es que la renovación es completamente automática. Sin embargo, siempre es buena idea verificar que el proceso de renovación funciona correctamente:

certbot renew --dry-run

Si el dry-run es exitoso (verás «Congratulations, all simulated renewals succeeded»), los certificados se renovarán automáticamente cada 60 días aproximadamente, mucho antes de que expiren a los 90 días.

Si por alguna razón la renovación automática falla, recibirás un email de aviso de Let’s Encrypt en la dirección que proporcionaste durante la instalación.

Errores comunes al configurar dominio personalizado y SSL en n8n

En mi experiencia ayudando a otros a configurar n8n, estos son los problemas más frecuentes y cómo solucionarlos:

Error: «Could not connect to the server»

Causa: Generalmente es un problema de WebSockets. Verifica que las líneas de Upgrade y Connection estén en tu configuración de Nginx. Sin ellas, n8n no puede establecer la conexión en tiempo real que necesita.

Error: Webhooks muestran URL con HTTP o IP

Causa: La variable WEBHOOK_URL no está configurada o tiene un valor incorrecto. Asegúrate de que sea exactamente https://n8n.tudominio.com/ con la barra final incluida.

Error: Certbot no puede verificar el dominio

Causa: El DNS aún no se propagó, o el puerto 80 está bloqueado. Verifica con dig que el dominio apunta a tu IP y confirma que el puerto 80 está abierto tanto en UFW como en el firewall del proveedor de VPS.

Error: 502 Bad Gateway en Nginx

Causa: n8n no está corriendo en el puerto 5678. Verifica con docker ps que el contenedor de n8n está activo y ejecuta curl http://localhost:5678 para confirmar que responde localmente.

Configuraciones avanzadas opcionales

Una vez que tengas funcionando tu dominio personalizado con SSL en n8n, puedes considerar estas mejoras adicionales:

  • Rate limiting en Nginx: Para proteger tu instancia de abusos, puedes limitar el número de peticiones por IP usando el módulo limit_req de Nginx.
  • Fail2ban: Configura Fail2ban para bloquear IPs que intenten acceder con fuerza bruta a tu instancia de n8n.
  • Backup del certificado: Aunque Certbot regenera certificados fácilmente, es buena práctica incluir /etc/letsencrypt/ en tus backups del servidor.
  • Monitoreo de expiración: Usa herramientas como UptimeRobot o un workflow en el propio n8n para monitorear que tu certificado SSL no expire inesperadamente.

Preguntas frecuentes sobre dominio personalizado y SSL en n8n

¿Es obligatorio configurar dominio personalizado y SSL en n8n?

Técnicamente puedes usar n8n sin SSL accediendo por IP y puerto, pero en la práctica es obligatorio si necesitas webhooks. Servicios como Google, Stripe, WhatsApp y la mayoría de APIs modernas requieren HTTPS para enviar datos a webhooks. Sin SSL, tus automatizaciones con webhooks simplemente no van a funcionar.

¿Cuánto cuesta el certificado SSL para n8n?

Nada. El certificado de Let’s Encrypt es completamente gratuito y se renueva automáticamente cada 60-90 días gracias a Certbot. No necesitas pagar por certificados SSL comerciales para este tipo de uso.

¿Puedo usar Cloudflare en lugar de Let’s Encrypt para el SSL?

Sí, puedes usar Cloudflare como proxy con su certificado SSL. Sin embargo, necesitas configurar el modo SSL en «Full (Strict)» en Cloudflare y aún así tener un certificado válido en tu servidor de origen. La configuración con Let’s Encrypt directamente es más simple y tiene menos puntos de fallo.

¿Qué pasa si el certificado SSL expira?

Si Certbot está configurado correctamente (que lo está por defecto), la renovación es automática y nunca debería expirar. Si por alguna razón falla, recibirás un email de aviso. Puedes renovar manualmente ejecutando certbot renew en tu servidor.

¿Puedo configurar dominio personalizado y SSL en n8n sin Docker?

Sí. Los pasos de DNS, Nginx y Certbot son exactamente iguales. La única diferencia está en las variables de entorno: en lugar de modificar docker-compose.yml, las configurarías en el archivo de servicio systemd o en el archivo .env de tu instalación nativa de n8n.

¿Vale la pena? Nuestra opinión

Configurar dominio personalizado y SSL en n8n es un paso imprescindible para cualquier uso profesional de esta herramienta de automatización. Como viste en esta guía, el proceso completo tarda menos de 20 minutos y el certificado SSL es completamente gratuito gracias a Let’s Encrypt.

Con HTTPS configurado correctamente, todos tus webhooks funcionarán sin problemas con servicios externos, tu instancia será más segura y tendrás una URL profesional que puedes compartir con tu equipo o clientes.

Si seguiste todos los pasos y algo no funciona, revisa la sección de errores comunes más arriba. El 90% de los problemas se resuelven verificando que el DNS esté propagado, los puertos estén abiertos y la variable WEBHOOK_URL esté correctamente configurada.

¿Te fue útil esta guía? Si estás montando tu infraestructura de n8n, te recomiendo continuar con nuestra guía sobre cómo hacer backup automático de n8n para proteger tus workflows y credenciales.


También te puede interesar

Previous

n8n Docker Compose Producción: Guía Completa 2026

Next

n8n en Railway Gratis: Cómo Desplegarlo Paso a Paso