🛃 使用自定义 CA 存储进行设置
警告
本教程由社区贡献,不受 Open WebUI 团队支持。它仅作为如何根据您的特定用例定制 Open WebUI 的演示。想贡献力量?请查看贡献教程。
如果您在尝试运行 OI 时收到 [SSL: CERTIFICATE_VERIFY_FAILED]
错误,最可能的问题是您所在的网络会拦截 HTTPS 流量(例如企业网络)。
要解决此问题,您需要将新证书添加到 OI 的信任存储中。
对于预构建的 Docker 镜像:
- 通过将
--volume=/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro
作为命令行选项传递给docker run
,将主机上的证书存储挂载到容器中 - 通过设置
REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
强制 Python 使用系统信任存储(参见 https://docs.dockerd.com.cn/reference/cli/docker/container/run/#env)
如果环境变量 REQUESTS_CA_BUNDLE
不起作用,请尝试设置 SSL_CERT_FILE
(根据 httpx 文档),并使用相同的值。
来自 @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 存储进行意外更改 本地开发用
您还可以在构建过程中通过修改 Dockerfile
添加证书。例如,如果您想更改 UI,这会很有用。由于构建过程分为多个阶段,您需要将证书添加到以下两个阶段:
- 前端(
build
阶段)
COPY package.json package-lock.json <YourRootCert>.crt ./
ENV NODE_EXTRA_CA_CERTS=/app/<YourRootCert>.crt
RUN npm ci
- 后端(
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