n8n 18.06.2026 13 просмотров

n8n HTTPS: настройка SSL-сертификата через Nginx и Let's Encrypt

#n8n #nginx #https #ssl #docker #ubuntu
n8n HTTPS: настройка SSL-сертификата через Nginx и Let's Encrypt
Пошаговая настройка HTTPS для n8n: Nginx reverse proxy, SSL через Certbot/Let's Encrypt на Ubuntu.

Запустить n8n локально легко, но для полноценной работы — вебхуков, внешних интеграций, командного доступа — нужен домен и HTTPS. В этом гайде настроим n8n HTTPS через Nginx reverse proxy и бесплатный SSL от Let's Encrypt. n8n установка на VPS + настройка домена — пошаговый процесс.

Что нам понадобится

  • VPS с Ubuntu 22.04 или 24.04 (минимум 2 ГБ RAM)
  • Домен, направленный A-записью на IP сервера
  • Docker и Docker Compose (установим)

Шаг 1: Установка n8n через Docker

Установка n8n на Ubuntu начинается с Docker. Установка n8n через Docker — самый надёжный способ для продакшена:

# Установить Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

# Проверить
docker compose version

Создайте директорию: mkdir -p ~/n8n && cd ~/n8n

Создайте docker-compose.yml. Установка n8n Docker — через Compose-файл:

version: "3.8"
services:
  postgres:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 10s
      retries: 5

  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      WEBHOOK_URL: https://${DOMAIN}/
      GENERIC_TIMEZONE: Europe/Moscow
      N8N_HOST: ${DOMAIN}
      N8N_PROTOCOL: https
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy

volumes:
  pg_data:
  n8n_data:

Создайте .env:

POSTGRES_PASSWORD=ваш_пароль
N8N_ENCRYPTION_KEY=ваш_ключ_32_символа
DOMAIN=n8n.ваш-домен.ru

Запустите: docker compose up -d

Шаг 2: Nginx как настройка веб сервера Linux

Настройка веб сервера Linux через Nginx reverse proxy:

sudo apt update && sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/n8n

Конфиг (HTTP, без SSL на этом шаге):

server {
    listen 80;
    server_name n8n.ваш-домен.ru;

    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_read_timeout 3600s;
    }
}
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Шаг 3: SSL через Let's Encrypt

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d n8n.ваш-домен.ru
sudo certbot renew --dry-run

Подключить n8n к домену: финальная проверка

Чтобы полностью подключить n8n к домену с HTTPS, перезапустите контейнеры: docker compose up -d --force-recreate

curl -I https://n8n.ваш-домен.ru
# HTTP/2 200 — работает!

Установка n8n на свой сервер: чеклист

При установке n8n на свой сервер:

  • ✅ Docker установлен, порт 5678 закрыт снаружи (только 127.0.0.1)
  • ✅ Nginx проксирует на 5678, слушает 80/443
  • ✅ SSL-сертификат получен через Certbot
  • ✅ WEBHOOK_URL = https://ваш-домен
  • ✅ Автообновление сертификата работает

Частые ошибки

502 Bad Gateway

n8n не запустился. Проверьте: docker compose logs n8n.

Вебхуки не работают

WEBHOOK_URL указан неверно. Должен быть публичный HTTPS URL.

Детальная установка — в статье Установка n8n на Ubuntu 24.04.

Полезные материалы по теме