メインコンテンツまでスキップ

🛃 カスタムCAストアを使用して設定する

警告

このチュートリアルはコミュニティによる貢献であり、Open WebUIチームによってサポートされているものではありません。これは特定のユースケースに合わせてOpen WebUIをカスタマイズする方法を示すデモンストレーションとして機能します。貢献したい場合は、貢献方法のチュートリアルをご覧ください。

OIの実行中に[SSL: CERTIFICATE_VERIFY_FAILED]エラーが発生する場合、通常、これはHTTPSトラフィックを傍受するネットワーク(例: 企業ネットワーク)にいることが原因です。

これを修正するには、新しい証明書をOIのトラストストアに追加する必要があります。

事前構築されたDockerイメージの場合:

  1. docker run--volume=/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:roをコマンドラインオプションとして渡すことで、ホストマシンの証明書ストアをコンテナにマウントします。
  2. REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crtを設定してPythonにシステムトラストストアを使用させます(https://docs.docker.com/reference/cli/docker/container/run/#env を参照)。

環境変数REQUESTS_CA_BUNDLEが機能しない場合は、同じ値でSSL_CERT_FILEhttpxのドキュメントに従って)を設定してみてください。

@KizzyCodeによる例のcompose.yaml:

services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
volumes:
- /var/containers/openwebui:/app/backend/data:rw
- /etc/containers/openwebui/compusrv.crt:/etc/ssl/certs/ca-certificates.crt:ro
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- WEBUI_NAME=compusrv
- ENABLE_SIGNUP=False
- ENABLE_COMMUNITY_SHARING=False
- WEBUI_SESSION_COOKIE_SAME_SITE=strict
- WEBUI_SESSION_COOKIE_SECURE=True
- ENABLE_OLLAMA_API=False
- REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

roフラグはCAストアを読み取り専用としてマウントし、ホストのCAストアへの誤操作を防止します。 ローカル開発の場合:

UIに変更を加える場合などに便利なように、ビルドプロセス中に証明書を追加することもできます。この場合、Dockerfileを変更します。 マルチステージでビルドが行われるため、両方のステージに証明書を追加する必要があります。

  1. フロントエンド(buildステージ):
COPY package.json package-lock.json <YourRootCert>.crt ./
ENV NODE_EXTRA_CA_CERTS=/app/<YourRootCert>.crt
RUN npm ci
  1. バックエンド(baseステージ):
COPY <CorporateSSL.crt> /usr/local/share/ca-certificates/
RUN update-ca-certificates
ENV PIP_CERT=/etc/ssl/certs/ca-certificates.crt \
REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt