Перейти к основному содержимому
warning

Этот учебник создан сообществом и не поддерживается командой Open WebUI. Он служит только демонстрацией того, как настроить Open WebUI для конкретного использования. Хотите внести свой вклад? Ознакомьтесь с учебником по внесению изменений.

HTTPS через Nginx

Обеспечение безопасной связи между вашими пользователями и Open WebUI имеет первостепенное значение. HTTPS (HyperText Transfer Protocol Secure) шифрует передаваемые данные, защищая их от перехвата и подделки. Настраивая Nginx как обратный прокси-сервер, вы можете легко добавить HTTPS к вашему развертыванию Open WebUI, повышая безопасность и надежность.

Это руководство предлагает три метода настройки HTTPS:

  • Самоподписанные сертификаты: подходит для разработки и внутреннего использования, с использованием Docker.
  • Lets Encrypt: идеально для производственных сред, где требуются доверенные SSL-сертификаты, с использованием Docker.
  • Windows+Самоподписанные: упрощённые инструкции для разработки и внутреннего использования на Windows, Docker не требуется.

Выберите метод, который лучше всего соответствует вашим требованиям к развертыванию.

Nginx Proxy Manager

Nginx Proxy Manager (NPM) позволяет легко управлять обратными прокси и защищать ваши локальные приложения, такие как Open WebUI, с помощью действительных SSL-сертификатов от Lets Encrypt. Эта настройка обеспечивает доступ по HTTPS, который необходим для использования функций голосового ввода на многих мобильных браузерах из-за требований безопасности, без прямого доступа к конкретному порту приложения в интернете.

Требования

  • Домашний сервер с установленным Docker и запущенным контейнером open-webui.
  • Имя домена (например, бесплатные варианты, такие как DuckDNS, или платные, такие как Namecheap/GoDaddy).
  • Базовые знания о Docker и настройке DNS.

Шаги

  1. Создание директорий для файлов Nginx:

    mkdir ~/nginx_config
    cd ~/nginx_config
  2. Настройка Nginx Proxy Manager с помощью Docker:

    nano docker-compose.yml
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Запустите контейнер:

docker-compose up -d
  1. Настройка DNS и домена:

    • Войдите в систему вашего провайдера домена (например, DuckDNS) и создайте домен.
    • Направьте домен на локальный IP вашего прокси (например, 192.168.0.6).
    • Если вы используете DuckDNS, получите API-токен на их панели управления.
Вот простой пример, как это делается на https://www.duckdns.org/domains :
  1. Настройка SSL-сертификатов:
  • Перейдите на Nginx Proxy Manager по адресу http://server_ip:81. Например: 192.168.0.6:81
  • Войдите с учетными данными по умолчанию ([email protected] / changeme). Измените их, как будет предложено.
  • Перейдите в SSL-сертификаты → Добавить SSL-сертификат → Lets Encrypt.
  • Введите ваш email и доменное имя, которое вы получили от DuckDNS. Один домен содержит звездочку, другой - нет. Пример: *.hello.duckdns.org и hello.duckdns.org.
  • Выберите Использовать DNS challenge, выберите DuckDNS и вставьте ваш API-токен. пример: dns_duckdns_token=f4e2a1b9-c78d-e593-b0d7-67f2e1c9a5b8
  • Согласитесь с условиями Lets Encrypt и сохраните. Измените время распространения если нужно (120 секунд).
  1. Создание прокси-хостов:
  • Для каждого сервиса (например, openwebui, nextcloud), перейдите в Hosts → Proxy Hosts → Add Proxy Host.
  • Заполните имя домена (например, openwebui.hello.duckdns.org).
  • Установите схему в HTTP (по умолчанию), включите Websockets support и укажите IP вашего Docker (если Docker с open-webui запущен на том же компьютере, что и NGINX manager, это будет тот же IP, что и раньше (пример: 192.168.0.6)
  • Выберите SSL-сертификат, который был создан ранее, включите SSL, и активируйте HTTP/2.
  1. Добавьте ваш URL в open-webui (иначе будет ошибка HTTPS):
  • Перейдите в ваш open-webui → Admin Panel → Settings → General
  • В текстовом поле Webhook URL введите URL, через который вы будете подключаться к вашему open-webui через обратный прокси Nginx. Пример: hello.duckdns.org (не обязательно для этого) или openwebui.hello.duckdns.org (обязательно для этого).

Доступ к WebUI:

Получите доступ к Open WebUI через HTTPS по адресу hello.duckdns.org или openwebui.hello.duckdns.org (в зависимости от вашей настройки).

Заметка о файерволе: Учтите, что локальное программное обеспечение файервола (например, Portmaster) может блокировать внутренний сетевой трафик Docker или необходимые порты. Если у вас есть проблемы, проверьте правила файервола, чтобы обеспечить необходимую связь для этой настройки.

Следующие шаги

После настройки HTTPS, заходите в Open WebUI безопасно по адресу:

Убедитесь, что ваши DNS-записи правильно настроены, если вы используете имя домена. Для производственных сред рекомендуется использовать Lets Encrypt для доверенных SSL-сертификатов.