前言

我的黑群晖是跑在unraid下虚拟机里的,用来存储和备份,还有就是做反向代理,用于外网访问,我有固定公网IP,申请了Let's Encrypt 泛域名证书,由于免费证书只有90天有效期,通过度娘参考借鉴,使用群晖任务计划自定义脚本实现证书每月自动更新。

通过acme协议更新群晖HTTPS泛域名证书的自动脚本

配置前准备

你需要自动更新的证书已经作为默认证书

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

下载一键更新脚本

项目地址

解压后将文件上传至群晖内任意文件目录

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

编辑脚本配置文件config

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

阿里云的Ali_key与Ali_secret查看方法:

进入阿里云控制台,鼠标移至右上角头像,点击AccessKey管理

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

安全考虑,这里最好建立子用户

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

创建用户

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

创建后 首次可见key和secret ,注意保存,如果忘了, 删掉用户,重新创建

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

左侧栏选授权——新增授权

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

完成后将key和secret填入config文件对应位置

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

最后配置群晖计划任务

先复制下上传到群晖里的脚本程序地址

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

接着打开 控制面板-任务计划-新增-计划的任务-用户定义的脚本群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新 (看到曙光了)

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

设置任务名称和操作用户,用户选root

设置计划的时间和周期,这里只支持按月或者年重复,我们只能取按月重复才能满足 Let’s Encrypt 至少3个月更新一次的要求:

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

最后设置执行脚本

sh文件路径为file station里复制过来的,logtxt路径与sh文件相同,两条命令之间没有换行

以下命令根据自己文件路径修改,不要照搬群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

/volume1/docker/syno-acme-master/cert-up.sh update >>/volume1/docker/syno-acme-master/log.txt 2>&1

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

最后在新建脚本上右键运行

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

最后看一下运行结果是否正常

群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

结语

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

至此实现群晖任务计划进行Let's Encrypt 泛域名证书自动更新,群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

tips:脚本里提供了回滚命令,可以通过ssh登录到nas,定位到对应目录,执行如下命令回滚证书目录到备份的状态

/volume1/docker/syno-acme-master/cert-up.sh revert

我没试过。。有需求的可以尝试,结束。群晖使用任务计划实现Let's Encrypt 泛域名证书自动更新

最后修改:2022 年 05 月 02 日
如果觉得我的文章对你有用,请随意赞赏