前言
我的黑群晖是跑在unraid下虚拟机里的,用来存储和备份,还有就是做反向代理,用于外网访问,我有固定公网IP,申请了Let's Encrypt 泛域名证书,由于免费证书只有90天有效期,通过度娘参考借鉴,使用群晖任务计划自定义脚本实现证书每月自动更新。
通过acme协议更新群晖HTTPS泛域名证书的自动脚本
配置前准备
你需要自动更新的证书已经作为默认证书
下载一键更新脚本
解压后将文件上传至群晖内任意文件目录
编辑脚本配置文件config
阿里云的Ali_key与Ali_secret查看方法:
进入阿里云控制台,鼠标移至右上角头像,点击AccessKey管理
安全考虑,这里最好建立子用户
创建用户
创建后 首次可见key和secret ,注意保存,如果忘了, 删掉用户,重新创建 。
左侧栏选授权——新增授权
完成后将key和secret填入config文件对应位置
最后配置群晖计划任务
先复制下上传到群晖里的脚本程序地址
接着打开 控制面板-任务计划-新增-计划的任务-用户定义的脚本 (看到曙光了)
设置任务名称和操作用户,用户选root
设置计划的时间和周期,这里只支持按月或者年重复,我们只能取按月重复才能满足 Let’s Encrypt 至少3个月更新一次的要求:
最后设置执行脚本
sh文件路径为file station里复制过来的,logtxt路径与sh文件相同,两条命令之间没有换行
以下命令根据自己文件路径修改,不要照搬
/volume1/docker/syno-acme-master/cert-up.sh update >>/volume1/docker/syno-acme-master/log.txt 2>&1
最后在新建脚本上右键运行
最后看一下运行结果是否正常
结语
这样群晖就会每个月,执行一次该脚本,自动更新证书,并重启web服务器加载新的脚本。
至此实现群晖任务计划进行Let's Encrypt 泛域名证书自动更新,
tips:脚本里提供了回滚命令,可以通过ssh登录到nas,定位到对应目录,执行如下命令回滚证书目录到备份的状态
/volume1/docker/syno-acme-master/cert-up.sh revert
我没试过。。有需求的可以尝试,结束。