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

2020-06-17 14:12:59 24点赞 248收藏 29评论

前言

我的黑群晖是跑在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 泛域名证书自动更新

群晖使用任务计划实现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 泛域名证书自动更新


展开 收起
29评论

  • 精彩
  • 最新
  • 这好像Linux的anacron计划命令,在cron.monthly文件夹里放个执行脚本,群晖的也能断电错过后再执行一遍吗?我有点好奇 [深思]

    校验提示文案

    提交
    试了一下。。断电错过并不能执行 [抠鼻]

    校验提示文案

    提交
    了解,群晖还是适合24小时开机+UPS的......

    校验提示文案

    提交
    收起所有回复
  • 大神,能写写反向代理吗?我现在用的端口转发,感谢感谢 [笑]

    校验提示文案

    提交
    我的机器挂在单位,有固定公网IP和443端口 [得意] 没有普适性。你用端口转发,就是有公网IP咯?那申请个域名,泛域名解析到你的公网IP呗,公网IP某个端口转发群晖的443(https)或者80(http),就可以用任意二级域名加公网端口号在群晖里配置反向代理内网服务了,想用https有小绿锁的话可以申请Let's Encrypt 泛域名证书,用脚本自动更新。最后,用域名访问的话小心查水表 [邪恶]

    校验提示文案

    提交
    我的机器挂在单位,有固定公网IP和443端口 [得意] 没有普适性。你用端口转发,就是有公网IP咯?那申请个域名,泛域名解析到你的公网IP,公网IP某个端口转发群晖的443(https)或者80(http),就可以用任意二级域名加公网端口号在群晖里配置反向代理内网服务了,想用https有小绿锁的话可以申请Let's Encrypt 泛域名证书,用脚本自动更新。最后,用域名访问的话小心*** [邪恶]

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 群晖自带的申请证书那个是不是要用到公网80端口?一直没成功过

    校验提示文案

    提交
    好像是要用80端口认证。。

    校验提示文案

    提交
    收起所有回复
  • 最后一段运行结果说明了什么?是成功了吗?不知道大佬以后每个月运行后自动更新证书了吗?因为我这里80端口和443端口都被封了,刚按照大佬教程部署了,不知道最后成功了吗?
    另外,请问大佬,更新证书后,openvpn是不是也要更新证书?

    校验提示文案

    提交
    输出正常就可以了,看看证书日期更新了就是成功,vpn的我不太清楚。。

    校验提示文案

    提交
    收起所有回复
  • 还有一个疑问,群辉里安装证书后,宿主系统unraid能用证书吗?

    校验提示文案

    提交
    用群晖的反向代理就可以啊

    校验提示文案

    提交
    收起所有回复
  • 很棒,已经用上。谢谢大佬

    校验提示文案

    提交
  • 运行后多久生效,我运行了为什么毫无反应

    校验提示文案

    提交
  • 运行完很快。看看证书时间是不是延长了三个月就知道是不是成功了

    校验提示文案

    提交
  • [Thu Oct 28 11:33:45 CST 2021] Please refer to 去看看 for error code: 60
    [Thu Oct 28 11:33:45 CST 2021] Can not init api.
    [Thu Oct 28 11:33:46 CST 2021] Please refer to 去看看 for error code: 60
    [Thu Oct 28 11:33:46 CST 2021] Can not init api.
    [Thu Oct 28 11:33:46 CST 2021] Registering account
    [Thu Oct 28 11:33:47 CST 2021] Please refer to 去看看 for error code: 60
    [Thu Oct 28 11:33:47 CST 2021] Could not get nonce, let's try again.

    查看了日志 一直报错这个 楼主知道啥原因吗

    校验提示文案

    提交
    我也一直提示这个错误

    校验提示文案

    提交
    这个报错,兄弟们解决了吗

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 结果显示“已中断”,根据设置在fonfig里设置主域名假设是baidu.com,但最后在群晖证书里多了一个nas.baidu.com的证书,求解

    校验提示文案

    提交
  • 动态公网IP可以用吗?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
248
扫一下,分享更方便,购买更轻松