Docker部署的Open-WebUI网站配置SSL证书问题求助
解决方案:给Docker部署的Open-WebUI配置Porkbun SSL证书
方案1:用Nginx Proxy Manager(图形化反向代理,新手友好)
这个方案无需修改原Open-WebUI容器,通过反向代理层实现HTTPS,全程图形界面操作:
部署Nginx Proxy Manager容器
新建docker-compose.yml文件:version: '3.8' services: npm: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # 映射HTTP端口 - '443:443' # 映射HTTPS端口 - '81:81' # 映射管理界面端口 volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt - ./custom_certs:/custom_certs # 用于存放你的Porkbun证书执行启动命令:
docker-compose up -d配置反向代理规则
- 访问
http://你的迷你PC本地IP:81,用默认账号admin@example.com、密码changeme登录并修改密码。 - 左侧菜单选择
Hosts->Proxy Hosts->Add Proxy Host:Domain Names:填写你的Porkbun域名(如yourdomain.com)Forward Hostname/IP:填写Open-WebUI容器的IP(可通过docker inspect 你的Open-WebUI容器名 | grep IPAddress查看)或容器名(需确保两个容器在同一Docker网络)Forward Port:填写Open-WebUI的端口(默认8080)- 切换到
SSL标签:SSL Certificate选择Custom- 点击
Upload Certificate,上传你的Porkbun证书文件(fullchain.pem)和私钥文件(privkey.pem) - 勾选
Force SSL和HTTP/2 Support后保存。
- 访问
调整路由器端口转发
将路由器的443端口转发到迷你PC的443端口,80端口保持转发到迷你PC的80端口(NPM会自动将HTTP请求跳转至HTTPS)。
方案2:直接给Open-WebUI容器配置HTTPS(无需额外代理)
Open-WebUI原生支持通过环境变量启用HTTPS,直接挂载证书即可:
准备证书文件
将Porkbun下载的fullchain.pem(证书链)和privkey.pem(私钥)放到迷你PC的指定文件夹,比如~/open-webui/certs/,并设置文件权限:chmod 644 ~/open-webui/certs/*.pem修改Open-WebUI启动配置
如果用docker run启动:docker run -d \ --name open-webui \ -p 80:8080 \ -p 443:443 \ # 新增HTTPS端口映射 -v ~/open-webui/certs/:/certs/ \ # 挂载证书文件夹 -e ENABLE_HTTPS=true \ -e SSL_CERT_PATH=/certs/fullchain.pem \ -e SSL_KEY_PATH=/certs/privkey.pem \ --restart always \ ghcr.io/open-webui/open-webui:main如果用
docker-compose,修改配置文件:version: '3.8' services: open-webui: image: ghcr.io/open-webui/open-webui:main restart: always ports: - "80:8080" - "443:443" # 新增HTTPS端口映射 volumes: - ./open-webui/data:/app/backend/data - ./certs/:/certs/ # 挂载证书文件夹 environment: - ENABLE_HTTPS=true - SSL_CERT_PATH=/certs/fullchain.pem - SSL_KEY_PATH=/certs/privkey.pem重启容器并调整转发
重启Open-WebUI容器,将路由器的443端口转发到迷你PC的443端口,访问https://你的域名即可生效。
关键注意事项
- 确保迷你PC防火墙开放了80和443端口,否则外部无法访问。
- 若使用反向代理,建议将两个容器加入同一Docker网络,避免依赖动态IP:
之后在NPM的docker network create web-network docker network connect web-network 你的Open-WebUI容器名 docker network connect web-network 你的NPM容器名Forward Hostname/IP中填写Open-WebUI的容器名即可。 - 证书到期后,替换
certs文件夹内的文件并重启对应容器即可更新。
内容的提问来源于stack exchange,提问作者Eskil
相关产品推荐
相关产品推荐

