Aria2 添加证书 支持HTTPS

之前一直都是使用AriaNG的最新发布页,在自己的笔记本上是使用本地文件(AriaNG发布了一个单文件版本)。
现在想把AriaNG部署在自己的VPS上,但是遇到一个问题,我的VPS已经是HTTPS了,把AriaNG跑起来以后,不能用HTTP连接到Aria2。
Aria2 RPC设置协议下拉,红框标出Http禁用选项

所以,解决问题的关键是让Aria2支持HTTPS
参考 https://chriszheng.science/2017/01/13/Use-Yaaw-in-HTTPS-environment/

具体步骤:
1. Caddy配置一个tls证书的申请
在Caddyfile里写成这样
ariang.gaga.ga {
    tls 1234567890@gmail.com
    gzip
    root /usr/local/caddy/www/
}
其中,在我的VPS环境上,把AriaNG的那个index.html放在了 /usr/local/caddy/www/ 下面

2. 用浏览器打开一下域名,确认页面正确加载,HTTPS状态正常(在浏览器点那个锁)。
浏览器地址栏锁图标展开,显示DST Root CA X3与加密连接

3. 找到申请下来的 .key 和 .crt
建议用 find 命令去找,你的域名.key
find / -name "ariang.gaga.ga.key"
找到的位置是类似这样
/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/ariang.gaga.ga/ariang.gaga.ga.key 
你会发现在同一个目录下还有 .crt

4. 把 .crt 和 .key 填到Aria2的配置文件里
编辑 /root/.aria2/aria2.conf
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
rpc-secure=true
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)
rpc-certificate=/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/ariang.gaga.ga/ariang.gaga.ga.crt
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)
rpc-private-key=/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/ariang.gaga.ga/ariang.gaga.ga.key
ps: 一般来说如果是用一键脚本搭的Aria2,这三个选项默认是屏蔽的,注意去掉前面的#
配置里rpc-secure三行需去掉行首的#号

5. Aria2服务重启
/etc/init.d/aria2 restart
6. HTTPS连接Aria2
注意:不能填IP地址了,要填证书对应的域名。ariang.gaga.ga
RPC设置填域名ariang.gaga.ga、协议选Https

用WebSocket(安全)也可以的。
RPC协议下拉中Https与WebSocket(安全)均可用

7. 如果给这个域名开CDN,要查一下CDN服务商支持那些端口走HTTPS
Cloudflare支持的HTTP与HTTPS端口列表,红框标出HTTPS端口
443已经被用了,那就用其它的。

评论