我们都知道可以使用 Let’s Encrypt 免费申请 HTTPS 证书。而且现在acme
协议版本更新了,开始支持泛域名(wildcard)了,这样可以只申请一个类似*.xxx.com
的证书,而不需要单独为每个子域名申请证书了。很爽~
大神已经对 acme 脚本做了群晖 NAS 的适配——syno-acme,我们就是要基于该脚本实现群晖 NAS 泛域名证书的自动更新~
1.下载脚本
可以直接下载作者打包好的工具:syno-acme v0.2.1,然后上传到 NAS 任意目录,并解压。
2.配置脚本参数
编辑脚本的配置文件config
,主要修改一下几个字段:
# 域名
export DOMAIN=xxx.com
# DNS 服务商
export DNS=dns_ali
# 阿里云DNS key
export Ali_Key=xxx
export Ali_Secret=yyy
笔者DNS服务商是阿里云,如果是其他服务商,需要根据服务商修改
3.配置定时任务
在 NAS 文件管理中获取到ceet-up.sh
脚本的绝对路径,打开控制面板 / 任务计划 / 新增 / 计划的任务 / 用户自定义的脚本
,用户选root,添加以下命令(笔者的是如下路径):
/document/cert/syno-acme/cert-up.sh update >> /document/cert/syno-acme/log.txt 2>&1
设置为每月执行一次即可(Let’s Encrypt3个月更新一次)。
添加后可立即运行一次脚本。
这样脚本就会运行,自动更新证书,并重启web服务器加载新的脚本。以后,NAS会每隔一个月执行一次该脚本,自动更新证书。
需要注意的是,大神的脚本会将默认的群晖官方的证书删除(会有备份),并将 Let’s Encrypt 证书设置为默认证书。
4.回滚
脚本里提供了回滚命令,可以通过ssh登录到nas,定位到对应目录,执行如下命令回滚证书目录到备份的状态:
/document/certs/syno-acme/cert-up.sh revert
回滚时需要指定回滚到的日期,如果不指定则会以latest
作为目标回滚,latest 则指向了最新的备份~,具体可参见下图:
acme 会将证书备份到
/document/cert/syno-acme/backup
目录,也可以手动导入恢复。
评论区