N8n dominio personalizado SSL es uno de los usos más prácticos de n8n. Acceder a n8n a través de https://n8n.tuempresa.com en lugar de una IP con puerto es esencial para cualquier instalación profesional. En esta guía te explico cómo configurar un dominio personalizado con SSL en n8n desde cero, incluyendo la configuración de DNS, el certificado HTTPS y las variables de entorno.
Por qué necesitas un dominio y SSL en n8n
Hay razones técnicas y de negocio para tener un dominio personalizado SSL en n8n:
- Los webhooks necesitan una URL pública con HTTPS para recibir peticiones de servicios externos
- Google, Stripe, WhatsApp y otros servicios rechazan webhooks HTTP sin SSL
- Es mucho más profesional y fácil de recordar que una IP con puerto
- Los certificados SSL son gratuitos con Let's Encrypt
Paso 1: Comprar o elegir un dominio
Si no tienes dominio, puedes comprar uno en Namecheap, GoDaddy o directamente en tu proveedor de hosting. El coste es de 10-15€/año para un .com.
También puedes usar un subdominio de un dominio que ya tengas. Por ejemplo, si tienes tuempresa.com, puedes crear n8n.tuempresa.com sin coste adicional.
Paso 2: Configurar los registros DNS
Para apuntar tu dominio al VPS donde está n8n, necesitas crear un registro DNS de tipo A:
| Tipo | Nombre | Valor | TTL |
|---|---|---|---|
| A | n8n | IP_DE_TU_VPS | 300 |
Sustituye IP_DE_TU_VPS por la IP pública de tu servidor. Los cambios DNS pueden tardar entre 5 minutos y 48 horas en propagarse, aunque normalmente son efectivos en menos de 30 minutos.
Verifica que el DNS apunta correctamente con:
dig n8n.tudominio.com +short
# Debe devolver la IP de tu VPS
Paso 3: Configurar el firewall
Asegúrate de que los puertos 80 y 443 estén abiertos en tu VPS:
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
Paso 4: Instalar Nginx y Certbot
apt update
apt install nginx certbot python3-certbot-nginx -y
Paso 5: Configurar Nginx para n8n
Crea el archivo de configuración:
nano /etc/nginx/sites-available/n8n
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";
}
}
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Paso 6: Obtener el certificado SSL gratuito
Con el dominio personalizado SSL para n8n ya apuntando al servidor, obtén el certificado:
certbot --nginx -d n8n.tudominio.com
Certbot te pedirá:
- Tu email (para notificaciones de renovación)
- Aceptar los términos de servicio
- Si quieres redirigir HTTP a HTTPS (elige sí)
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.
Paso 7: Configurar las variables de entorno de n8n
Con el dominio personalizado SSL ya funcionando, actualiza las variables de entorno de n8n:
# 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/
WEBHOOK_URL es especialmente importante: determina la URL base que n8n usa para generar las URLs de webhooks. Sin esta variable configurada correctamente, los webhooks mostrarán URLs incorrectas.
Reinicia n8n para aplicar los cambios:
docker compose restart n8n
Verificar que el SSL funciona
Accede a https://n8n.tudominio.com desde tu navegador. Deberías ver:
- El candado verde en la barra de direcciones
- El certificado emitido por Let's Encrypt
- n8n cargando correctamente
Prueba también que los webhooks se generan con la URL correcta creando un nodo Webhook en n8n y verificando que la URL mostrada es https://n8n.tudominio.com/webhook/....
Renovación automática del certificado
Certbot configura la renovación automática. Puedes verificarlo con:
certbot renew --dry-run
Si el dry-run es exitoso, los certificados se renovarán automáticamente cada 60 días.
Conclusión
Configurar un dominio personalizado con SSL en n8n es imprescindible para cualquier uso profesional. El proceso completo tarda menos de 20 minutos y el certificado SSL es completamente gratuito. Con HTTPS configurado, todos los webhooks funcionarán correctamente con los servicios externos que los requieran.


