跳到主要内容

用 Cloudflare Tunnel 配 HTTPS

不开放服务器端口,也能把 OPL 数据空间安全暴露到公网。

Cloudflare Tunnel(cloudflared)会从你的服务器主动连到 Cloudflare 边缘网络,由 Cloudflare 负责 TLS、抗 DDoS 和访问控制。

适用场景

  • 想要生产级公网访问
  • 不想自己维护证书
  • 机器在 NAT 后面或防火墙规则受限

前提

  • OPL 数据空间已在本机 8080 端口运行
  • 你有 Cloudflare 账号
  • 你的域名 DNS 已托管到 Cloudflare

Dashboard 方式

  1. 打开 Zero Trust → Networks → Tunnels
  2. 创建 tunnel,类型选 Cloudflared
  3. 运行 Cloudflare 提供的 connector 安装命令
  4. 添加 Public Hostname

建议配置:

字段
Subdomainchat
Domain你的 Cloudflare 域名
Service typeHTTP
URLlocalhost:8080

保存后 Cloudflare 会自动创建 DNS 记录。随后直接访问 https://chat.your-domain.com

CLI 方式

cloudflared tunnel login
cloudflared tunnel create open-webui

创建 ~/.cloudflared/config.yml

tunnel: YOUR_TUNNEL_ID
credentials-file: /home/YOUR_USER/.cloudflared/YOUR_TUNNEL_ID.json

ingress:
  - hostname: chat.your-domain.com
    service: http://localhost:8080
  - service: http_status:404

然后:

cloudflared tunnel route dns open-webui chat.your-domain.com
cloudflared tunnel run open-webui

OPL 数据空间侧配置

docker run -d \
  -e WEBUI_URL=https://chat.your-domain.com \
  -v open-webui:/app/backend/data \
  -p 8080:8080 \
  ghcr.io/open-webui/open-webui:main

如果你还要更细的访问控制,可在 Cloudflare Zero Trust 里为该域名加 Access Policy。