qBittorrent WebUI原生不支持HTTPS,需通过反向代理(如Nginx、Caddy、Traefik)、客户端重定向或特定编译版启用HTTPS加密访问。

如果您尝试通过浏览器访问qBittorrent WebUI,但连接未加密或遭遇浏览器安全警告,则说明当前正使用HTTP协议传输敏感凭证与控制指令。qBittorrent原生WebUI不直接支持HTTPS,需通过反向代理或外部服务实现加密通信。以下是实现HTTPS访问的多种可行方案:
一、使用Nginx反向代理启用HTTPS
该方法将Nginx部署为前置HTTPS终结点,接收加密请求后以HTTP转发至本地qBittorrent WebUI(默认端口8080),兼顾安全性与兼容性,适用于公网暴露或局域网多设备访问场景。
1、确保Nginx已安装并运行,且qBittorrent WebUI监听地址为127.0.0.1:8080(避免直接暴露)。
2、获取有效SSL证书:若使用Let's Encrypt,执行sudo certbot --nginx -d your-domain.com自动配置;若为自签名证书,确保证书路径可被Nginx读取。
3、创建Nginx站点配置文件(如/etc/nginx/sites-available/qbittorrent-https),写入以下内容:
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
4、启用配置:sudo ln -sf /etc/nginx/sites-available/qbittorrent-https /etc/nginx/sites-enabled/,然后运行sudo nginx -t && sudo systemctl reload nginx。
5、访问<strong><font color="green">https://your-domain.com</font></strong>,确认浏览器地址栏显示锁形图标且无证书警告。
二、通过Caddy自动HTTPS代理
Caddy内置自动HTTPS能力,无需手动申请与续期证书,配置极简,适合快速部署或动态IP环境,尤其适配家庭NAS或轻量VPS。
1、安装Caddy(以Ubuntu为例):sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list && sudo apt update && sudo apt install caddy。
2、编辑Caddyfile:sudo nano /etc/caddy/Caddyfile,填入:
your-domain.com {
reverse_proxy 127.0.0.1:8080
}
3、重启服务:sudo systemctl restart caddy。
4、Caddy将自动完成域名验证、证书申请与HTTPS启用,访问<strong><font color="green">https://your-domain.com</font></strong>即可生效。
三、Docker容器内集成Traefik反向代理
适用于Docker Compose编排环境,Traefik可自动发现服务、动态生成HTTPS路由规则,并支持Let's Encrypt ACME自动续签,实现零手工证书管理。
1、准备docker-compose.yml,包含traefik与qbittorrent两个服务,确保qbittorrent容器标签中声明WebUI端口与路由规则:
services:
traefik:
image: traefik:v2.10
command: --api.insecure=true --providers.docker --entrypoints.web.address=:80 --entrypoints.websecure.address=:443 --certificatesresolvers.le.acme.email=you@example.com --certificatesresolvers.le.acme.storage=/acme.json --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./acme.json:/acme.json"
qbittorrent:
image: linuxserver/qbittorrent
labels:
- "traefik.enable=true"
- "traefik.http.routers.qbittorrent.rule=Host(`your-domain.com`)\
- "traefik.http.routers.qbittorrent.tls=true"
- "traefik.http.routers.qbittorrent.tls.certresolver=le"
environment:
- WEBUI_PORT=8080
volumes:
- "./config:/config"
- "./downloads:/downloads"
2、创建空文件acme.json并设置权限:touch acme.json && chmod 600 acme.json。
3、启动栈:docker-compose up -d。
4、Traefik自动完成HTTPS配置,访问<strong><font color="green">https://your-domain.com</font></strong>即建立加密连接。
四、强制WebUI仅响应HTTPS请求(客户端重定向)
当反向代理已启用HTTPS但qBittorrent自身仍接受HTTP请求时,可通过修改其WebUI设置,使所有HTTP请求重定向至HTTPS地址,防止用户误用非加密通道。
1、登录qBittorrent WebUI,在“工具 > 选项 > Web UI”中找到“Web UI根URL”字段。
2、将该字段值设为完整HTTPS地址,例如:https://your-domain.com(不含尾部斜杠)。
3、勾选“重定向所有HTTP请求到此URL”选项。
4、点击“应用”保存设置。
5、此后任何对http://your-domain.com的访问将自动跳转至<strong><font color="green">https://your-domain.com</font></strong>,确保会话全程加密。
五、启用qBittorrent内置HTTPS支持(需编译版或特定镜像)
部分第三方构建版本(如do/docker-qbittorrent)或自行编译的qBittorrent(启用QT_NO_SSL禁用检查)支持直接加载证书文件启动HTTPS服务,绕过反向代理依赖,适用于隔离部署或调试场景。
1、准备PEM格式证书文件:server.crt(含证书链)与server.key(私钥),确保私钥无密码保护。
2、启动容器时挂载证书并指定HTTPS参数:
docker run -d \
-p 443:443 \
-v /path/to/server.crt:/config/server.crt:ro \
-v /path/to/server.key:/config/server.key:ro \
-e QB_WEBUI_HTTPS="true" \
-e QB_WEBUI_CERT="/config/server.crt" \
-e QB_WEBUI_KEY="/config/server.key" \
-v /path/to/config:/config \
-v /path/to/downloads:/downloads \
ghcr.io/do/docker-qbittorrent
3、确认容器日志输出包含HTTPS server started on :443字样。
4、访问<strong><font color="green">https://your-server-ip</font></strong>,验证TLS握手成功且页面可正常加载。

















