Self-hosted n8n должен открываться для сотрудников и принимать webhook по предсказуемым защищённым адресам. Для приёмки недостаточно увидеть значок замка в браузере: нужно зафиксировать путь запроса, проверить публичный URL webhook и провести безопасное тестовое событие через фактический прокси.
Ниже — порядок подготовки и приёмки. Он опирается на официальную документацию n8n, проверенную 24 октября 2026 года. Это не отчёт о настройке конкретного сервера: версию n8n, цепочку прокси, сетевые правила и способ продления сертификата нужно сверить в развёрнутой среде.
Какую рабочую задачу решает HTTPS
HTTPS шифрует транспортное соединение на проверяемом участке и позволяет клиенту проверить имя сервера по сертификату. В этой задаче защищённый адрес нужен двум маршрутам:
- сотрудник открывает редактор n8n;
- внешний сервис отправляет событие на webhook.
Успешное соединение по HTTPS не доказывает безопасность всей инсталляции. Оно не проверяет роли, SSO, хранение секретов, публичный API, выполнение кода, журналы, резервные копии и исходящие соединения. Эти вопросы требуют отдельного разбора, например при проверке доступа и данных в n8n.
Практический результат этого этапа — не формулировка «HTTPS включён», а описанный маршрут с ответственными и проверяемыми условиями.
Зафиксировать домен, маршруты и точку завершения TLS
Начните со схемы из четырёх элементов:
- Внешний клиент или сервис отправляет запрос.
- Публичный домен указывает на доступную точку входа.
- Reverse proxy или балансировщик принимает соединение.
- n8n обрабатывает запрос во внутреннем контуре.
Для каждого участка запишите адрес, протокол и владельца настройки. Отдельно укажите:
| Что зафиксировать | Вопрос для приёмки |
|---|---|
| Публичный домен | Какой адрес открывают сотрудники и вызывают внешние сервисы? |
| Точка завершения TLS | Где проверяется сертификат и расшифровывается соединение? |
| Связь прокси с n8n | По какому протоколу и адресу прокси обращается к приложению? |
| Внутренний порт | Доступен ли он только по согласованной сетевой схеме? |
| Маршруты | Совпадают ли опубликованные пути редактора и webhook с проектом? |
- Что зафиксировать
- Публичный домен
- Вопрос для приёмки
- Какой адрес открывают сотрудники и вызывают внешние сервисы?
- Что зафиксировать
- Точка завершения TLS
- Вопрос для приёмки
- Где проверяется сертификат и расшифровывается соединение?
- Что зафиксировать
- Связь прокси с n8n
- Вопрос для приёмки
- По какому протоколу и адресу прокси обращается к приложению?
- Что зафиксировать
- Внутренний порт
- Вопрос для приёмки
- Доступен ли он только по согласованной сетевой схеме?
- Что зафиксировать
- Маршруты
- Вопрос для приёмки
- Совпадают ли опубликованные пути редактора и webhook с проектом?
Документация n8n описывает два способа поддержки TLS: поставить reverse proxy или сетевой балансировщик перед n8n либо передать сертификат приложению напрямую. n8n рекомендует вариант с reverse proxy, но эта рекомендация не делает его обязательным для любой инфраструктуры. Она также не подтверждает защиту внутреннего участка между прокси и приложением — его проверяют отдельно.

Разберём ваш рабочий пример и покажем согласованный фрагмент решения до договора и предоплаты.
Выбрать способ работы с сертификатом
Сравните два документированных варианта с фактической архитектурой.
| Вариант | Где завершается TLS | Что нужно определить |
|---|---|---|
| Reverse proxy или балансировщик | На внешней точке перед n8n | Кто выпускает и устанавливает сертификат, как устроены продление, сигнал об ошибке и восстановление |
| Прямой TLS в n8n | В самом приложении | Где безопасно размещены файлы, кто обновляет их и как проверяется актуальность сертификата |
- Вариант
- Reverse proxy или балансировщик
- Где завершается TLS
- На внешней точке перед n8n
- Что нужно определить
- Кто выпускает и устанавливает сертификат, как устроены продление, сигнал об ошибке и восстановление
- Вариант
- Прямой TLS в n8n
- Где завершается TLS
- В самом приложении
- Что нужно определить
- Где безопасно размещены файлы, кто обновляет их и как проверяется актуальность сертификата
При прямом TLS пути к файлам сертификата и ключа задают через N8N_SSL_CERT и N8N_SSL_KEY. Эти имена подтверждены текущей документацией, но она не определяет подходящие права на файлы, место хранения и процедуру выпуска для вашей среды. Не публикуйте закрытый ключ, значения секретов и реальные внутренние адреса.
Reverse proxy может взять на себя работу с продлением сертификата, если такая возможность настроена в выбранном прокси. Для приёмки всё равно нужен конкретный владелец процесса. Запишите, кто:
- выпускает и устанавливает сертификат;
- следит за сроком действия;
- получает наблюдаемый сигнал при ошибке;
- проверяет продление;
- восстанавливает доступ после неудачного обновления.
Согласовать внешний адрес n8n и webhook
Внутренний адрес приложения и публичный адрес могут различаться. Например, n8n работает внутри контура на порту 5678, а reverse proxy публикует домен через порт 443. Поэтому адрес, который n8n собирает из внутренних параметров, может не подойти внешнему сервису.
При работе за reverse proxy документация требует вручную задать публичный адрес webhook через N8N_WEBHOOK_URL. Тогда n8n может показывать его в редакторе и регистрировать корректный URL во внешнем сервисе.
Имя WEBHOOK_URL объявлено устаревшим начиная с n8n 2.35.0; вместо него документация использует N8N_WEBHOOK_URL. Перед изменением проверьте установленную версию n8n и актуальную для неё документацию. Не переносите параметр из примера вслепую в другую версию.
В листе приёмки сопоставьте три значения:
| Значение | Что должно быть понятно |
|---|---|
| Внутренний адрес n8n | Где приложение слушает запросы внутри контура |
| Публичный адрес редактора | Как сотрудники открывают интерфейс |
| Публичная база webhook | Какой HTTPS-домен и путь получают внешние сервисы |
- Значение
- Внутренний адрес n8n
- Что должно быть понятно
- Где приложение слушает запросы внутри контура
- Значение
- Публичный адрес редактора
- Что должно быть понятно
- Как сотрудники открывают интерфейс
- Значение
- Публичная база webhook
- Что должно быть понятно
- Какой HTTPS-домен и путь получают внешние сервисы
Передать n8n сведения об исходном запросе
За reverse proxy приложение видит не исходное соединение, а запрос от посредника. Последний прокси на маршруте должен передать n8n сведения об исходном клиенте, хосте и протоколе через заголовки:
X-Forwarded-For;X-Forwarded-Host;X-Forwarded-Proto.
В документированном примере с одним прокси используется N8N_PROXY_HOPS=1. Значение 1 нельзя считать универсальной настройкой: число доверенных переходов зависит от реальной цепочки. Зафиксируйте все прокси и балансировщики на пути, определите последний доверенный узел и проверьте, какие посредники могут создавать или менять forwarded-заголовки.
Такая запись помогает избежать двух ошибок: доверять заголовкам от непредусмотренного источника или указать число переходов, которое не соответствует архитектуре.
Условный маршрут без рабочих последствий
Ниже — синтетический проектный пример. Это не клиентский кейс Switch On AI и не результат выполненного теста.
Условная компания разместила n8n во внутреннем контейнере и публикует automation.example.ru через reverse proxy. TLS завершается на прокси. По проектному требованию внутренний порт n8n не должен быть напрямую доступен из интернета. В конфигурации задан внешний HTTPS-адрес webhook, а последний прокси передаёт сведения об исходном протоколе и хосте.
Безопасная учебная последовательность выглядит так:
- Внешний отправитель обращается к тестовому webhook по HTTPS.
- Reverse proxy принимает TLS-соединение и передаёт запрос n8n.
- Тестовый workflow принимает искусственное событие без записи в CRM и отправки писем.
- n8n возвращает заранее согласованный контролируемый ответ.
Приёмщик сопоставляет сертификат и домен, URL в редакторе, фактически вызванный адрес, запись о выполнении и ответ отправителю. Изоляцию внутреннего порта, безопасный состав workflow, журналирование, ограничение рабочих действий и обработку повторов команда должна спроектировать и испытать в конкретной среде — документация о TLS не подтверждает их автоматически.
Пример ожидаемого результата:
| Проверка | Тестовое действие | Ожидаемый результат |
|---|---|---|
| Публичный адрес | Отправить синтетическое событие на https://automation.example.ru/... | Запрос приходит на согласованный тестовый маршрут |
| Workflow | Передать искусственный идентификатор события | Запускается только тестовый workflow |
| Рабочие последствия | Проверить подключённые действия | Нет записи в CRM, письма или другого рабочего изменения |
| Ответ | Сверить ответ отправителю | Получен заранее согласованный безопасный ответ |
| Повтор | Повторить то же искусственное событие | Фактическое поведение зафиксировано и сравнено с проектным правилом |
- Проверка
- Публичный адрес
- Тестовое действие
- Отправить синтетическое событие на
https://automation.example.ru/... - Ожидаемый результат
- Запрос приходит на согласованный тестовый маршрут
- Проверка
- Workflow
- Тестовое действие
- Передать искусственный идентификатор события
- Ожидаемый результат
- Запускается только тестовый workflow
- Проверка
- Рабочие последствия
- Тестовое действие
- Проверить подключённые действия
- Ожидаемый результат
- Нет записи в CRM, письма или другого рабочего изменения
- Проверка
- Ответ
- Тестовое действие
- Сверить ответ отправителю
- Ожидаемый результат
- Получен заранее согласованный безопасный ответ
- Проверка
- Повтор
- Тестовое действие
- Повторить то же искусственное событие
- Ожидаемый результат
- Фактическое поведение зафиксировано и сравнено с проектным правилом
Как проверить настройку перед запуском
Проводите проверку по уровням, чтобы ошибка на одном участке не скрывалась успешной работой другого.
| Уровень | Что проверить | Критерий приёмки |
|---|---|---|
| Сертификат | Срок действия, цепочку и соответствие публичному имени | Сертификат подходит используемому домену, браузер не показывает предупреждение |
| Редактор | Открытие согласованного адреса | Интерфейс доступен по ожидаемому HTTPS-адресу |
| HTTP | Обращение по незащищённой схеме | HTTP недоступен либо переводит на согласованный HTTPS-адрес |
| URL webhook | Адрес, показанный n8n | Указаны правильные внешние схема, домен и путь |
| Внешний вызов | Запрос из контролируемого внешнего источника | Запрос приходит через фактическую точку входа |
| Прокси | Маршрут и forwarded-заголовки | n8n получает сведения согласно согласованной цепочке доверия |
| Workflow | Идентификатор и журнал выполнения | Запускается нужный тестовый workflow, выполнение можно сопоставить с запросом |
| Ответ | Результат для отправителя | Отправитель получает согласованный контролируемый ответ |
| Перезапуск | Повтор проверки после штатного перезапуска | Нужная конфигурация сохраняется |
| Продление | Процедура в используемом контуре | Назначены ответственный, способ проверки и наблюдаемый сигнал ошибки |
- Уровень
- Сертификат
- Что проверить
- Срок действия, цепочку и соответствие публичному имени
- Критерий приёмки
- Сертификат подходит используемому домену, браузер не показывает предупреждение
- Уровень
- Редактор
- Что проверить
- Открытие согласованного адреса
- Критерий приёмки
- Интерфейс доступен по ожидаемому HTTPS-адресу
- Уровень
- HTTP
- Что проверить
- Обращение по незащищённой схеме
- Критерий приёмки
- HTTP недоступен либо переводит на согласованный HTTPS-адрес
- Уровень
- URL webhook
- Что проверить
- Адрес, показанный n8n
- Критерий приёмки
- Указаны правильные внешние схема, домен и путь
- Уровень
- Внешний вызов
- Что проверить
- Запрос из контролируемого внешнего источника
- Критерий приёмки
- Запрос приходит через фактическую точку входа
- Уровень
- Прокси
- Что проверить
- Маршрут и forwarded-заголовки
- Критерий приёмки
- n8n получает сведения согласно согласованной цепочке доверия
- Уровень
- Workflow
- Что проверить
- Идентификатор и журнал выполнения
- Критерий приёмки
- Запускается нужный тестовый workflow, выполнение можно сопоставить с запросом
- Уровень
- Ответ
- Что проверить
- Результат для отправителя
- Критерий приёмки
- Отправитель получает согласованный контролируемый ответ
- Уровень
- Перезапуск
- Что проверить
- Повтор проверки после штатного перезапуска
- Критерий приёмки
- Нужная конфигурация сохраняется
- Уровень
- Продление
- Что проверить
- Процедура в используемом контуре
- Критерий приёмки
- Назначены ответственный, способ проверки и наблюдаемый сигнал ошибки
Добавьте негативные сценарии, но не связывайте их с опасными рабочими действиями:
- неверный путь не запускает тестовый workflow;
- неподходящий хост не попадает на разрешённый маршрут;
- повтор события обрабатывается по заранее записанному правилу;
- недоступный backend не выглядит как успешная обработка;
- просроченный или не соответствующий имени сертификат выявляется в контролируемой среде.
Не задавайте произвольное число тестов ради отчёта. Каждый сценарий должен проверять конкретный риск. Для результата сохраните входное событие, ожидаемое поведение, фактическое поведение и найденное расхождение. Общий подход к такой проверке описан в сценариях приёмки автоматизации.
Ограничения, эксплуатация и следующий шаг
Пройденная проверка подтверждает только фактически испытанный транспортный маршрут. Она не доказывает корректность ролей, SSO, секретов, журналов, резервного копирования, публичного API, разрешённых узлов и сетевых направлений. Внешний доступ к внутреннему порту n8n и административным интерфейсам проверяйте отдельно по согласованной сетевой схеме.
Перед запуском должен остаться короткий эксплуатационный паспорт:
- публичный домен и назначение маршрутов;
- точка завершения TLS и внутренняя схема соединения;
- версия n8n и используемые имена параметров;
- фактическая цепочка прокси и число доверенных переходов;
- владелец сертификата и процедура продления;
- сигнал об ошибке и порядок восстановления;
- тестовый workflow и журнал последней приёмки.
Если нужно спроектировать такой маршрут и подготовить критерии приёмки, Switch On AI занимается разработкой и внедрением автоматизации. Для первого обсуждения подготовьте внешний домен, схему размещения n8n и прокси, перечень будущих webhook и сведения о текущем управлении сертификатами. Мы разберём процесс, согласуем ограниченный прототип и требования, а объём внедрения, стоимость, сроки и сопровождение зафиксируем отдельно в предложении и договоре.
Вопросы по этой задаче
Можно ли включить HTTPS прямо в n8n без reverse proxy?
Да. Документация предусматривает передачу путей к файлам сертификата и ключа через N8N_SSL_CERT и N8N_SSL_KEY. Выпуск, безопасное хранение и своевременное продление сертификата при этом остаются отдельными эксплуатационными задачами.
Почему webhook показывает внутренний адрес или HTTP?
За reverse proxy внутренние параметры n8n могут не совпадать с публичным адресом. Нужно сверить N8N_WEBHOOK_URL, внешний домен, настройки прокси и передаваемые сведения об исходном протоколе и хосте.
Достаточно ли открыть редактор n8n по HTTPS для приёмки?
Нет. Отдельно вызовите тестовый webhook по публичному адресу и подтвердите маршрут через фактический прокси до нужного тестового workflow и обратно к отправителю.
Какое значение поставить в N8N_PROXY_HOPS?
Значение зависит от фактической цепочки доверенных прокси. Число 1 относится к документированному примеру с одним переходом и не является универсальной настройкой.
Доказывает ли HTTPS, что self-hosted n8n полностью безопасен?
Нет. Проверка HTTPS подтверждает только испытанный транспортный маршрут. Доступы, секреты, публичный API, журналы, резервные копии, разрешённые узлы и сетевые ограничения проверяют отдельно.
