このチュートリアルはコミュニティの貢献によるものであり、Open WebUIチームによるサポートは提供されません。これは、ご自身の特定の利用例に合わせてOpen WebUIをカスタマイズする方法のデモとしてのみ提供されています。貢献したいですか?貢献方法についてのチュートリアルをご覧く ださい。
Nginxを使用したHTTPS
ユーザーとOpen WebUI間の安全な通信を確保することは非常に重要です。HTTPS (HyperText Transfer Protocol Secure)は、送信されるデータを暗号化し、それを盗聴や改ざんから保護します。リバースプロキシとしてNginxを構成することで、Open WebUIデプロイメントにシームレスにHTTPSを追加し、セキュリティと信頼性を向上させることができます。
このガイドでは、HTTPSを設定するための3つの方法を紹介します:
- 自己署名証明書: 開発および内部使用に最適、Dockerを使用。
- Lets Encrypt: 信頼性の高いSSL証明書が必要な本番環境に最適、Dockerを使用。
- Windows+自己署名: Windows上で開発および内部使用向けの簡略化した手順、Docker不要。
ご自身のデプロイメントニーズに最適な方法を選んでください。
- Nginx Proxy Manager
- Lets Encrypt
- 自己署名
- Windows
Nginx Proxy Manager
Nginx Proxy Manager (NPM) は、Open WebUI のようなローカルア プリケーションを、Lets Encrypt の有効な SSL 証明書を使用して簡単に管理し、安全にリバースプロキシすることができます。 この設定により、HTTPS アクセスが可能になり、多くのモバイルブラウザで音声入力機能を使用するために必要なセキュリティ要件を満たしつつ、アプリケーション固有のポートを直接インターネットに公開することなく使用できます。
前提条件
- Docker を実行しているホームサーバーと open-webui コンテナが動作していること。
- ドメイン名(DuckDNS のような無料オプション、Namecheap や GoDaddy のような有料オプション)。
- Docker と DNS 設定に関する基本的な知識。
手順
-
Nginx ファイル用ディレクトリを作成:
mkdir ~/nginx_config
cd ~/nginx_config -
Docker を使用して Nginx Proxy Managerをセットアップ:
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
-
DNSとドメインを設定:
- ドメインプロバイダー(例: DuckDNS)にログインしてドメインを作成します。
- ドメインをプロキシのローカルIPに指定します(例: 192.168.0.6)。
- DuckDNSを使用する場合は、ダッシュボードからAPIトークンを取得します。
以下は https://www.duckdns.org/domains の簡単な例です:
- SSL証明書を設定:
- http://server_ip:81 で Nginx Proxy Manager にアクセスします。 例:
192.168.0.6:81
- デフォルトの資格情報([email protected] / changeme)でログインし、要求されたら変更します。
- SSL 証明書 → SSL 証明書の追加 → Lets Encrypt に進みます。
- DuckDNSで取得したメールアドレスとドメイン名を記入します。一つのドメイン名にはアスタリスクが含まれ、もう一つのドメインには含まれていません。例:
*.hello.duckdns.org
とhello.duckdns.org
。 - DNSチャレンジを使用するオプションを選択し、DuckDNSを選んでAPIトークンを貼り付けます。 例:
dns_duckdns_token=f4e2a1b9-c78d-e593-b0d7-67f2e1c9a5b8
- Let’s Encrypt の利用規約に同意して保存します。必要に応じて伝播時間を変更します (120秒の場合あり)。
- プロキシホストを作成:
- 各サービス (例: openwebui、nextcloud) のために、Hosts → Proxy Hosts → Add Proxy Host に進みます。
- ドメイン名(例: openwebui.hello.duckdns.org)を入力します。
- スキームをHTTPに設定(デフォルト)し、
Websockets support
を有効にし、Docker IPを指定します(nginx manager と open-webui が同じコンピュータで動作する場合は、前述のIPと同じになります。例:192.168.0.6
) - 先ほど生成したSSL証明書を選択し、SSLを強制し、HTTP/2を有効にします。
- open-webuiへのURLを追加(HTTPSエラー回避のため):
- ご自身のopen-webui → 管理パネル → 設定 → 一般 に移動します。
- Webhook URLテキストフィ ールドに、Nginx リバースプロキシ経由で open-webui に接続する際のURLを入力します。例:
hello.duckdns.org
(これは必須ではない)またはopenwebui.hello.duckdns.org
(これは必須)。
WebUIへのアクセス:
HTTPS経由でOpen WebUIにアクセスします。例: hello.duckdns.org
または openwebui.hello.duckdns.org
(設定に応じて)。