OpenList 反向代理与 HTTPS 配置完整教程

154次阅读
没有评论
OpenList 反向代理与 HTTPS 配置完整教程

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 random

2.3 登录信息

  • 用户名:固定为 admin
  • 密码:上述步骤设置的自定义密码或随机生成的密码

三、Nginx 反向代理配置(HTTP 访问)

配置反向代理,实现通过子域名(而非 IP+端口)访问 OpenList,先配置 HTTP 访问,确保基础访问正常。

3.1 编辑 Nginx 配置文件

  1. 登录宝塔面板,点击左侧「网站」;
  2. 找到目标子域名站点,点击右侧「设置」;
  3. 进入「配置文件」页面,删除原有配置内容,粘贴以下 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 /flushdns

Linux 系统(可选)

 systemctl restart nscd

4.3 测试验证

打开浏览器无痕模式,输入 http://你的子域名,不再自动跳转 HTTPS 且能正常访问,即为解决成功。

五、HTTPS 配置(使用泛域名证书)

HTTP 访问正常后,配置 HTTPS 实现加密访问,提升安全性,浏览器地址栏将显示安全锁标。

5.1 上传泛域名证书

  1. 登录宝塔面板,点击左侧「文件」;
  2. 进入 /www/ 目录,新建 ssl 文件夹(路径固定为 /www/ssl/);
  3. 进入 /www/ssl/ 文件夹,上传泛域名证书的 \.pem\.key 文件;
  4. 记录证书文件名(如 \_\.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 配置文件和证书文件,避免误操作导致访问失败;
  • 操作过程中若遇到报错,优先查看终端提示的错误信息,多数为配置或路径错误。
正文完
 0
Yida
版权声明:本站原创文章,由 Yida 于2026-04-18发表,共计3665字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码