Featured image of post alist公网使用https

alist公网使用https

内网用http或https都可以,外网配合ddns用自己域名进行https访问

alist分享了一些文件,偶尔需要分享到公网,开启https还是有些安全感的。

下载证书

我的域名证书都是在ohttps统一管理,价格便宜,也可以用免费的,我用的手动更新,3个月更新一次,每个域名单次手动更新0.25元。

https://ohttps.com/?invitationCode=5py6vrv176xrnze1

下载我们需要的证书

安装alist

alist文件夹创建certconfig两个文件夹和docker-compose.yml文件。把刚才下载的两个证书文件上传到cert文件夹内。docker-compose.yml文件内容和目录结构参考如下:

docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
services:
 alist:
   image: xhofe/alist:latest
   container_name: alist
   volumes:
     - ./config:/opt/alist/data
     - ./cert:/cert
   ports:
     - 5244:5244
     - 5245:5245
   environment:
     - PUID=0
     - PGID=0
     - UMASK=022
   restart: unless-stopped

然后运行 docker compose up -d alist容器就创建完成了

修改alist config

alist创建完成后,config文件会有config.json配置文件,普通用户无权限修改,所以运行sudo vim config/config.json修改配置文件,scheme修改内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"scheme": {
   "address": "0.0.0.0",
   "http_port": 5244,
   "https_port": 5245,
   "force_https": false,
   "cert_file": "/cert/fullchain.cer",
   "key_file": "/cert/cert.key",
   "unix_file": "",
   "unix_file_perm": ""
 },

配置生效

运行如下命令重构容器,容器重构后,在内网可以用https://localhost:5245或者[http://localhost:5244/](http://localhost:5244/)

docker compose down

docker compose up -d

映射公网端口

配合ddns服务就可以用自己域名和映射端口,公网访问自己的alist

用NGINX实现

通过NGINX反向代理到alist的5244端口,所以alist docker-compose 文件不需要改动,路由器NAT服务端口映射内网端口5244 改成 443

nginx配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
server {
   listen 443 ssl;
   server_name nas.11010.net; # 改成你的域名

   ssl_certificate /etc/nginx/certs/fullchain.cer;
   ssl_certificate_key /etc/nginx/certs/cert.key;

   location / {
       proxy_pass http://192.168.3.103: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;
   }
}

📎 参考文章

Licensed under CC BY-NC-SA 4.0
最后更新于 Apr 09, 2025 11:10 CST