ACME(自动证书管理环境)是一个互联网工程任务组维护的协议,它允许自动化 Web 服务器证书的部署,可以通过其实现 SSL 证书的自动申请、续期等。免费 SSL 证书有效期较短,需要定期重新申请和更换,使用开源的一键更新脚本【syno-acme】可以简化部署流程,只需下载文件修改配置参数即可。
准备工作
- 系统环境:已安装并正常运行的 DSM 系统;
- 域名解析:确保域名已正确解析到 NAS 的公网 IP 地址;
- 管理员权限:需要 DSM 管理员账号操作;
- API 凭证:脚本需要获取对应 DNS 服务商后台的操作权限(ID 和密钥)。
下载脚本
项目开源地址:https://github.com/andyzhshg/syno-acme。
通过 Tags 下载打包好的版本:选择 v0.3.0_dsm7_beta。

将下载的脚本工具上传到 NAS 的任意目录下,并解压。

配置脚本参数
编辑脚本的配置文件 config。
- 主要修改红色框内容:
- 域名(不包含 www 及 https 部分,如 baidu.com)
- DNS 类型(阿里云 dns_ali,Dnspod dns_dp,Godaddy dns_gd 等)
ID 和密钥,不同 DNS 类型只需要修改对应部分即可(一般在控制台查看或创建)。以阿里云为例,使用 RAM 用户 AccessKey,配置为 SSL 管理权限。

配置文件中若未包含你的 DNS 类型,可参照官方文档添加自己的配置:
https://github.com/acmesh-official/acme.sh/tree/master/dnsapi

NAS 创建定时任务(周期更新 SSL)
- 复制脚本 cert-up.sh 文件的绝对路径;
- 在 File Station 中找到解压后的 v0.3.0_dsm7_beta 文件夹下的 cert-up.sh 文件,右键属性;
- 复制完整的绝对路径到剪贴板。


群晖 NAS 新增计划任务
- 控制面板 --> 任务计划 --> 新增 --> 计划的任务 --> 用户自定义的脚本;
- 设置任务名称和操作用户,这里一定要选择 root;
- 设置计划的时间和周期,建议小于 3 个月更新一次(免费 SSL 证书有效期通常为 3 个月)。


设置执行脚本
关键:cert-up.sh 路径 + update。 我们可以将脚本的输出重定向到一个 log.txt 的文件中,便于排查脚本的执行情况。 脚本命令如下(注意没有换行):
/volume1/nas_share/certs/syno-acme/cert-up.sh update >> /volume1/nas_share/certs/syno-acme/log.txt 2>&1
具体的路径是 cert-up.sh 的路径(之前复制的那个绝对路径)。 不需要输出执行结果到文件,可只执行'update'即可。
测试脚本是否正常: 选择刚刚创建的自动更新 ssl 任务,右键运行即可。

这样脚本就会运行,自动更新证书,并重启 web 服务器加载新的证书。以后,NAS 会每隔一个月执行一次该脚本,自动更新证书。





