结合 Alist 和 HTTPS 证书 使其支持
HTTPS
访问,通常涉及以下几个步骤。你可以按照这些步骤来回忆你之前的操作过程。
1. 安装 Alist
首先,确认你是否已经安装了
Alist。如果没有,可以通过以下命令安装:
1 2
| 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(如果没有安装):
然后,编辑 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;
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:...';
location / { proxy_pass http://127.0.0.1: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_certificate
和
ssl_certificate_key
:指定 SSL 证书文件路径和私钥路径。
proxy_pass
:将 Nginx 的流量转发到运行 Alist
的端口(假设是 5244)。
如果你使用的是 Let's
Encrypt,ssl_certificate
和
ssl_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
| sudo systemctl reload nginx
./alist server
|
或者,如果你使用的是系统服务来管理 Alist,确保它也在运行:
1
| sudo systemctl start alist
|
6. 测试访问
现在,你应该可以通过 HTTPS 访问 Alist
了。打开浏览器并访问:
如果一切配置正确,应该能够通过 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": "" },
|