alist配置SSL实现https访问

结合 AlistHTTPS 证书 使其支持 HTTPS 访问,通常涉及以下几个步骤。你可以按照这些步骤来回忆你之前的操作过程。

1. 安装 Alist

首先,确认你是否已经安装了 Alist。如果没有,可以通过以下命令安装:

1
2
# 使用 curl 下载并安装 Alist
curl -sSL https://github.com/alist-org/alist/releases/download/vX.X.X/alist-linux-amd64.tar.gz | tar -xzv -C /usr/local/bin

这将把 Alist 的可执行文件安装到 /usr/local/bin 目录下。

2. 生成 HTTPS 证书

如果你使用的是自己生成的 SSL 证书,可以使用 openssl 来生成证书。例如,生成一个自签名证书:

1
2
3
4
5
6
7
8
# 生成私钥
openssl genpkey -algorithm RSA -out /etc/ssl/private/alist.key

# 生成证书请求
openssl req -new -key /etc/ssl/private/alist.key -out /etc/ssl/certs/alist.csr

# 生成自签名证书
openssl x509 -req -in /etc/ssl/certs/alist.csr -signkey /etc/ssl/private/alist.key -out /etc/ssl/certs/alist.crt

或者,如果你使用的是 Let's Encrypt 证书,你可以使用 certbot 自动化工具来生成免费的 SSL 证书:

1
sudo certbot certonly --standalone -d your-domain.com

生成的证书通常保存在 /etc/letsencrypt/live/your-domain.com/ 路径下。

3. 配置 Nginx 作为反向代理

为了将 Alist 通过 HTTPS 提供访问,通常会使用 Nginx 来作为反向代理服务器,监听 443 端口并转发请求到 Alist

示例 Nginx 配置:

首先,安装 Nginx(如果没有安装):

1
sudo apt install nginx

然后,编辑 Nginx 配置文件,通常是在 /etc/nginx/sites-available/default/etc/nginx/nginx.conf 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 443 ssl;
server_name your-domain.com; # 用你自己的域名

ssl_certificate /etc/ssl/certs/alist.crt; # 如果使用的是自签名证书
ssl_certificate_key /etc/ssl/private/alist.key; # 如果使用的是自签名证书

# 如果使用 Let's Encrypt 证书:
# 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; # 推荐使用的协议
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:...'; # 选择强加密算法

location / {
proxy_pass http://127.0.0.1:5244; # 假设 Alist 在 5244 端口上运行
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;
}
}
  • listen 443 ssl;:监听 443 端口并启用 SSL。
  • ssl_certificatessl_certificate_key:指定 SSL 证书文件路径和私钥路径。
  • proxy_pass:将 Nginx 的流量转发到运行 Alist 的端口(假设是 5244)。

如果你使用的是 Let's Encryptssl_certificatessl_certificate_key 应该指向 Let's Encrypt 的证书路径,如下所示:

1
2
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

4. 配置 Alist 监听端口

确保 Alist 配置文件中指定的端口与你在 Nginx 配置中的 proxy_pass 地址一致,假设 Alist 默认运行在 5244 端口。如果需要,可以编辑 Alist 配置文件来修改端口。

5. 重启服务

完成 Nginx 配置后,重启 Nginx 和 Alist 服务:

1
2
3
4
5
# 重新加载 Nginx 配置
sudo systemctl reload nginx

# 启动 Alist 服务
./alist server

或者,如果你使用的是系统服务来管理 Alist,确保它也在运行:

1
sudo systemctl start alist

6. 测试访问

现在,你应该可以通过 HTTPS 访问 Alist 了。打开浏览器并访问:

1
https://your-domain.com

如果一切配置正确,应该能够通过 HTTPS 访问 Alist。

另法

官方文档

因为 alist 官方文档也显示了可以修改配置实现 https 访问

alist 在 /opt/alist/data 中的 config. json 文件中可以配置,配置如下:

1
2
3
4
5
6
7
8
9
10
"scheme": {
"address": "0.0.0.0",
"http_port": 5244,
"https_port": 443,
"force_https": true,
"cert_file": "/etc/letsencrypt/live/alist.050626.xyz/fullchain.pem",
"key_file": "/etc/letsencrypt/live/alist.050626.xyz/privkey.pem",
"unix_file": "",
"unix_file_perm": ""
},

alist配置SSL实现https访问
http://example.com/2025/01/27/alist配置SSL实现https访问/
作者
JunBin Liang
发布于
2025年1月27日
许可协议