OpenList 反向代理与 HTTPS 配置完整教程
本文为标准化实操教程,涵盖 OpenList 密码重置、Nginx 反向代理(HTTP)、HTTPS 配置全流程,代码格式统一规范,步骤清晰可直接参考,适用于新手及运维人员。
## 一、前期准备
- 服务器:已安装宝塔面板的 Linux 服务器(CentOS、Ubuntu 等主流系统均可)
- 基础软件:已在宝塔面板中部署 Nginx 服务、Docker 服务(确保 Docker 正常运行)
- 域名配置:已将目标子域名解析至服务器公网 IP(解析类型为 A 记录,确保解析生效)
- 证书准备:泛域名证书一套,包含 `.pem` 证书文件和 `.key` 密钥文件(用于 HTTPS 配置)
- 操作工具:宝塔面板(网页端)、宝塔内置终端、Chrome/Edge 浏览器
二、OpenList 管理员密码重置
OpenList 初始密码为随机生成,若未记录或忘记密码,可通过以下步骤重置(适用于 Docker 部署版本)。
### 2.1 查看 OpenList 容器名称
执行以下命令,获取运行 OpenList 的 Docker 容器名称,后续操作需用到:
docker ps | grep openlist示例输出:openlist\_j43z\-openlist\_j43Z\-1(记录此容器名称,每个人的名称可能不同)。
2.2 重置密码(两种方式任选其一)
方式1:自定义密码(推荐,易记忆)
替换命令中的「你的容器名」和「自定义密码」,执行后即可设置新密码:
docker exec -it 你的容器名 ./openlist admin set 自定义密码示例(容器名为 openlist_j43z-openlist_j43Z-1,密码设为 OpenList@123):
docker exec -it openlist_j43z-openlist_j43Z-1 ./openlist admin set OpenList@123方式2:随机生成密码(高安全性,无需记忆)
替换「你的容器名」后执行,系统会自动生成一串随机安全密码(执行后终端会显示,建议截图记录):
docker exec -it 你的容器名 ./openlist admin random2.3 登录信息
- 用户名:固定为
admin - 密码:上述步骤设置的自定义密码或随机生成的密码
三、Nginx 反向代理配置(HTTP 访问)
配置反向代理,实现通过子域名(而非 IP+端口)访问 OpenList,先配置 HTTP 访问,确保基础访问正常。
3.1 编辑 Nginx 配置文件
- 登录宝塔面板,点击左侧「网站」;
- 找到目标子域名站点,点击右侧「设置」;
- 进入「配置文件」页面,删除原有配置内容,粘贴以下 HTTP 配置。
3.2 HTTP 配置内容(规范代码格式)
server {
listen 80;
listen [::]:80;
server_name 你的子域名; # 替换为实际子域名(如 pan.xxx.com)
# 反向代理至 OpenList 服务(端口固定为 15244,无需修改)
location / {
proxy_pass http://127.0.0.1:15244;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}3.3 配置生效操作
配置保存后,需重启 Nginx 使配置生效,执行以下命令(顺序不可颠倒):
# 第一步:检查 Nginx 配置是否正确(避免语法错误导致启动失败)
nginx -t
# 第二步:重启 Nginx 服务
systemctl restart nginx提示 test is successful 即为配置正确,重启后即可生效。
3.4 HTTP 访问测试
打开浏览器,输入 http://你的子域名,若能进入 OpenList 登录界面,且输入用户名和密码可正常登录,说明 HTTP 反向代理配置成功。
四、浏览器自动跳转 HTTPS 问题解决
部分浏览器会因缓存 HSTS 规则,导致输入 HTTP 地址自动跳转 HTTPS,出现访问失败,按以下步骤解决。
4.1 清除浏览器 HSTS 缓存
- Chrome 浏览器:地址栏输入
chrome://net\-internals/\#hsts - Edge 浏览器:地址栏输入
edge://net\-internals/\#hsts
进入页面后,找到「Delete domain security policies」,输入子域名和根域名,分别点击「Delete」,关闭浏览器所有窗口后重新打开。
4.2 清除系统 DNS 缓存
Windows 系统
ipconfig /flushdnsLinux 系统(可选)
systemctl restart nscd4.3 测试验证
打开浏览器无痕模式,输入 http://你的子域名,不再自动跳转 HTTPS 且能正常访问,即为解决成功。
五、HTTPS 配置(使用泛域名证书)
HTTP 访问正常后,配置 HTTPS 实现加密访问,提升安全性,浏览器地址栏将显示安全锁标。
5.1 上传泛域名证书
- 登录宝塔面板,点击左侧「文件」;
- 进入
/www/目录,新建ssl文件夹(路径固定为/www/ssl/); - 进入
/www/ssl/文件夹,上传泛域名证书的\.pem和\.key文件; - 记录证书文件名(如
\_\.xxx\.com\.pem、\_\.xxx\.com\.key),后续配置需用到。
5.2 编辑 Nginx HTTPS 配置
回到子域名站点「配置文件」页面,删除原有 HTTP 配置,粘贴以下 HTTPS 配置,替换对应占位符。
5.3 HTTPS 配置内容(规范代码格式)
# HTTP 自动跳转 HTTPS(强制加密访问)
server {
listen 80;
listen [::]:80;
server_name 你的子域名;
return 301 https://$host$request_uri; # 永久跳转至 HTTPS
}
# HTTPS 核心配置
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name 你的子域名;
# 证书路径(替换为 /www/ssl/ 目录下的实际证书文件名)
ssl_certificate /www/ssl/你的证书文件.pem;
ssl_certificate_key /www/ssl/你的证书文件.key;
# SSL 通用配置(无需修改,保障兼容性和安全性)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 反向代理至 OpenList 服务
location / {
proxy_pass http://127.0.0.1:15244;
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;
}
}5.4 配置生效与测试
# 检查配置正确性
nginx -t
# 重启 Nginx 生效
systemctl restart nginx重启后,打开浏览器输入 https://你的子域名,地址栏显示安全锁标,且能正常登录 OpenList,即为 HTTPS 配置成功。
六、常见问题与解决方案
6.1 Nginx 重启失败,提示 80 端口被占用
原因:80 端口被 Apache 等其他服务占用。
解决方案:在宝塔面板中停止占用 80 端口的服务,再重新重启 Nginx。
6.2 证书配置后,浏览器提示证书无效
原因:证书路径错误、证书文件损坏,或证书未覆盖当前子域名。
解决方案:核对证书路径和文件名是否正确,重新上传证书文件,确认泛域名证书覆盖当前子域名。
6.3 密码重置后,无法登录 OpenList
原因:容器名称输入错误,或命令执行失败。
解决方案:重新执行 docker ps \| grep openlist 确认容器名称,重新执行密码重置命令。
6.4 证书到期处理
泛域名证书有效期通常为 3 个月,到期前重新生成新证书,替换 /www/ssl/ 目录下的旧证书,重启 Nginx 即可。
七、补充说明
- 本文所有代码块均采用标准 fenced 格式,标注对应语言,可直接复制执行;
- 所有占位符(你的容器名、你的子域名、你的证书文件)需替换为实际信息,不可直接使用;
- 建议定期备份 Nginx 配置文件和证书文件,避免误操作导致访问失败;
- 操作过程中若遇到报错,优先查看终端提示的错误信息,多数为配置或路径错误。
