Zum Hauptinhalt springen
Warnung

Dieses Tutorial ist ein Community-Beitrag und wird vom Open WebUI-Team nicht unterstützt. Es dient lediglich als Demonstration, wie Open WebUI für Ihren spezifischen Anwendungsfall angepasst werden kann. Möchten Sie beitragen? Schauen Sie sich das Tutorial zum Beitragen an.

HTTPS mit Nginx

Die Gewährleistung einer sicheren Kommunikation zwischen Ihren Benutzern und Open WebUI ist von größter Bedeutung. HTTPS (HyperText Transfer Protocol Secure) verschlüsselt die übertragenen Daten und schützt sie so vor Lauschangriffen und Manipulation. Durch die Konfiguration von Nginx als Reverse-Proxy können Sie nahtlos HTTPS zu Ihrer Open WebUI-Bereitstellung hinzufügen und so sowohl die Sicherheit als auch die Vertrauenswürdigkeit verbessern.

Diese Anleitung bietet drei Methoden zur Einrichtung von HTTPS

  • Selbstsignierte Zertifikate: Ideal für Entwicklung und interne Nutzung, mit Docker.
  • Let's Encrypt: Perfekt für Produktionsumgebungen, die vertrauenswürdige SSL-Zertifikate benötigen, mit Docker.
  • Windows+Selbstsigniert: Vereinfachte Anweisungen für Entwicklung und interne Nutzung unter Windows, ohne Docker.

Wählen Sie die Methode, die am besten zu Ihren Bereitstellungsanforderungen passt.

Nginx Proxy Manager

Nginx Proxy Manager (NPM) ermöglicht es Ihnen, Reverse-Proxies einfach zu verwalten und Ihre lokalen Anwendungen wie Open WebUI mit gültigen SSL-Zertifikaten von Let's Encrypt zu sichern. Diese Einrichtung ermöglicht HTTPS-Zugriff, der für die Nutzung von Spracheingabefunktionen auf vielen mobilen Browsern aufgrund ihrer Sicherheitsanforderungen erforderlich ist, ohne den spezifischen Port der Anwendung direkt dem Internet auszusetzen.

Voraussetzungen

  • Ein Heimserver, auf dem Docker und ein Open-WebUI-Container laufen.
  • Ein Domainname (kostenlose Optionen wie DuckDNS oder kostenpflichtige wie Namecheap/GoDaddy).
  • Grundlegende Kenntnisse in Docker und DNS-Konfiguration.

Schritte

  1. Verzeichnisse für Nginx-Dateien erstellen

    mkdir ~/nginx_config
    cd ~/nginx_config
  2. Nginx Proxy Manager mit Docker einrichten

    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

Container ausführen

docker-compose up -d
  1. DNS und Domain konfigurieren

    • Melden Sie sich bei Ihrem Domainanbieter (z. B. DuckDNS) an und erstellen Sie eine Domain.
    • Zeigen Sie mit der Domain auf die lokale IP Ihres Proxys (z. B. 192.168.0.6).
    • Wenn Sie DuckDNS verwenden, holen Sie sich ein API-Token aus deren Dashboard.
Hier ist ein einfaches Beispiel, wie es unter https://www.duckdns.org/domains gemacht wird:
  1. SSL-Zertifikate einrichten
  • Greifen Sie auf Nginx Proxy Manager unter http://server_ip:81 zu. Beispiel: 192.168.0.6:81
  • Melden Sie sich mit den Standardanmeldedaten an (admin@example.com / changeme). Ändern Sie diese, wenn Sie dazu aufgefordert werden.
  • Gehen Sie zu SSL-Zertifikate → SSL-Zertifikat hinzufügen → Let's Encrypt.
  • Geben Sie Ihre E-Mail-Adresse und den Domainnamen ein, den Sie von DuckDNS erhalten haben. Ein Domainname enthält ein Sternchen und ein anderer nicht. Beispiel: *.hello.duckdns.org und hello.duckdns.org.
  • Wählen Sie "DNS-Challenge verwenden", wählen Sie DuckDNS und fügen Sie Ihr API-Token ein. Beispiel: dns_duckdns_token=f4e2a1b9-c78d-e593-b0d7-67f2e1c9a5b8
  • Stimmen Sie den Let's Encrypt-Bedingungen zu und speichern Sie. Ändern Sie die Übertragungszeit **falls erforderlich** (120 Sekunden).
  1. Proxy-Hosts erstellen
  • Gehen Sie für jeden Dienst (z. B. openwebui, nextcloud) zu Hosts → Proxy-Hosts → Proxy-Host hinzufügen.
  • Füllen Sie den Domainnamen aus (z. B. openwebui.hello.duckdns.org).
  • Stellen Sie das Schema auf HTTP (Standard), aktivieren Sie Websocket-Unterstützung und zeigen Sie auf Ihre Docker-IP (wenn Docker mit Open-WebUI auf demselben Computer wie NGINX-Manager läuft, ist dies dieselbe IP wie zuvor (Beispiel: 192.168.0.6).
  • Wählen Sie das zuvor generierte SSL-Zertifikat aus, erzwingen Sie SSL und aktivieren Sie HTTP/2.
  1. Fügen Sie Ihre URL zu Open WebUI hinzu (andernfalls erhalten Sie einen HTTPS-Fehler)
  • Gehen Sie zu Ihrem Open WebUI → Admin-Panel → Einstellungen → Allgemein
  • Geben Sie im Textfeld Webhook-URL die URL ein, über die Sie sich über den Nginx-Reverse-Proxy mit Ihrem Open WebUI verbinden werden. Beispiel: hello.duckdns.org (bei dieser nicht unbedingt erforderlich) oder openwebui.hello.duckdns.org (bei dieser unbedingt erforderlich).

Greifen Sie auf die WebUI zu:

Greifen Sie über HTTPS auf Open WebUI zu unter hello.duckdns.org oder openwebui.hello.duckdns.org (je nachdem, wie Sie es eingerichtet haben).

Hinweis zur Firewall: Beachten Sie, dass lokale Firewall-Software (wie Portmaster) interne Docker-Netzwerkdaten oder erforderliche Ports blockieren kann. Wenn Sie Probleme haben, überprüfen Sie Ihre Firewall-Regeln, um sicherzustellen, dass die für diese Einrichtung erforderliche Kommunikation zugelassen wird.

Nächste Schritte

Nachdem Sie HTTPS eingerichtet haben, greifen Sie sicher auf Open WebUI zu unter

Stellen Sie sicher, dass Ihre DNS-Einträge korrekt konfiguriert sind, wenn Sie einen Domainnamen verwenden. Für Produktionsumgebungen wird die Verwendung von Let's Encrypt für vertrauenswürdige SSL-Zertifikate empfohlen.