这里我们通过申请 let’t encrypt 的证书并自动更新,实现使用 https 来通过外网访问群辉 nas.
1 准备工具
- 有固定 ip 的云主机(我选的是阿里云的 ecs)
- 备案的域名(我选择的是万网上购买的域名,经过实名登记和备案两个步骤)
- ssh 工具
- 群辉(ds218+)
2 域名注册/备案
这一步网上有很多教程,我这里就不详细说了,但是如果你是从阿里云或者其他国内大型云服务商购买的域名的话,通过他们来提交备案信息可以加快备案的流程以及成功率,我从发起备案到备案完成一共也就花了不到一天时间.
3.ssl 证书申请/自动续期
用到的工具在这里https://github.com/andyzhshg/syno-acme,大佬的文档也写的很清楚http://www.up4dev.com/2018/05/29/synology-ssl-wildcard-cert-update/
原理就是获取免费证书,然后自动续期,在这个过程中需要验证域名有效性,所以需要为你提供 dns 解析服务的服务商提供的 api key 和 screct 用来修改 dns 解析记录来实现证书验证,需要填写的 ttl 根据自己服务商提供的 ttl 填写即可.自动续期则使用的群辉的定时任务功能,每个月执行一次证书的续期工作.
4.配置
关于 frp 的简单配置可以看https://h123.cf/2019/09/12/2019.09.12.frp/#more
这里我们主要介绍下 frp 上 https 的配置
官方文档:
https://github.com/fatedier/frp/blob/master/README_zh.md
客户端配置
配置 frpc.ini
1 | ; frpc.ini |
证书文件格式转换
这里需要注意的是使用上面的方法申请的证书文件为 cer 格式,需要我们手动转变为 crt 格式:
1 | openssl x509 -inform PEM -in certificate.cer -out certificate.crt |
服务端配置
配置 frps.ini
1 | ; frps.ini |
配置 nginx
配置 nginx 转发 80 端口到 443 端口,实现全站 https
1 | ; nginx.conf |
tips
使frpc/frps 在后台运行:1
2
3
4
5nohup ./frps -c ./frps.ini &
nohup ./frpc -c ./frpc.ini &
这样日志文件都会保存在同目录下的 nohup.out
文件中,可以在日志文件中查看服务的状态.
同时在修改了配置文件以后,需要把已经运行的进程 kill 掉,再执行上面的命令.
1 |
|