GXNAS博客

  • 博客会员
    • 注册会员
    • 重置密码
  • 博客文章分类
    • NAS
    • 虚拟化技术
    • 路由器
    • 网站
    • Linux
    • Windows
    • IPTV
    • 游戏
    • 资源下载
    • 其他
  • ”零刻迷你主机“玩机教程
    • 零刻EQ12迷你小主机评测
    • 零刻SER5 5500U打造新潮派HTPC
    • 零刻SEi10玩ESXI+群晖NAS+Ubuntu
    • 零刻EQ13化身迷你静音省电的NAS
    • 零刻EQ13部署双软路由教程
    • 零刻ME Mini搭建群晖NAS教程
  • 阿里云盘资源
    • 阿里云盘资源更新日志
    • 阿里云盘资源分享
    • 阿里云盘扩容福利码
  • 【GXNAS网盘】
  • 【GXNAS小工具】
    • 免费AI绘图
    • 五子棋小游戏
  • 请博主喝奶茶
GXNAS博客
https://wp.gxnas.com
  1. 首页
  2. NAS
  3. 博文内容

群晖 Let's Encrypt 泛域名证书自动更新

发布时间:2018年7月14日 11973次浏览 1人点赞 5条评论

1. 准备工作

因为本方法是一键替换群晖的默认证书,所以为了防止意外,最好保证你的证书列表里只有一条记录,即默认证书那一条。实际上因为支持了泛域名证书,基本上这一条记录就足够用了(当然,如果你要管理多个域名,可能本文的方法并不实用)。所以开始工作前你的证书列表大概应该是这个样子:

2. 下载一键更新脚本

这是一键脚本的项目地址:andyzhshg/syno-acme。

如果你对项目本身不感兴趣,可以直接下载打包好的工具:syno-acme v0.2.1。

可以通过 File Station 将下载的工具上传到NAS的任意目录下,并解压。

解压后大概是这个样子:

解压

3. 配置脚本参数

编辑脚本的配置文件config:

配置

如图所示,需要编辑的几个字段我用蓝框标记出来了。

首先是DOMAIN,也就是你的域名。

然后是DNS的类型,根据服务商的不同,DNS类型各不相同,比如阿里云(dns_ali),Dnspod(dns_dp),Godaddy(dns_gd)等。

最后要根据不同的服务商配置服务上提供的授权密钥等信息,比如我的域名服务商是阿里云,我需要编辑Ali_Key和Ali_Secret字段,字段的内容需要到域名服务商的管理后台来查看,因为不同的服务商的查看方式不同,请大家根据自己的实际情况去查找吧。

需要指出的是,我给出的配置文件模板并没有给出所有acme.sh支持的域名服务商,大家可以参照 https://github.com/Neilpang/acme.sh/tree/master/dnsapi来添加自己的配置。一般情况下,这个页面每个文件对应一个域名服务商,比如dns_ali.sh就是对应阿里云,文件名去掉.sh扩展名就是DNS类型,比如阿里云的DNS类型就是dns_ali。打开对应文件, 一般都可以在文件的头部找到需要设置的授权信息对应的密钥,比如阿里云的授权密钥所在的位置如下图所示:

APIKEY

config模板中没有的服务商,请大家自行完善。

[^2018.05.31]: 针对评论区同学提出的 Linode 的 API 生效时间的问题,增加了一个配置参数DNS_SLEEP,出现类似问题的话可以通过修改增大这个参数来解决。

4. 配置定时任务

i. 查找脚本路径

在 File Station 中定位到下载的一键脚本的目录,查看该脚本的绝对路径:

复制完整的绝对路径到剪贴板。

ii. 创建定时任务

打开 控制面板 / 任务计划 / 新增 / 计划的任务 / 用户自定义的脚本:

设置任务名称和操作用户,需要注意的是这里一定要选择root:

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

设置执行脚本,这里我们将脚本的输出重定向到了一个log.txt的文件中,以方便后期查看脚本的执行情况:

上图红框中的脚本命令为(注意没有换行):

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

 

具体的路径是步骤 i中复制的路径。

iii. 试运行脚本

可以在新建的任务上点击右键立即执行任务:

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

iv. 回滚

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

/volume1/nas_share/certs/syno-acme/cert-up.sh revert

 

总结

这个一键脚本的特点是最小限度的触碰系统文件,仅/usr/syno/etc/certificate/_archive目录会被更改。acme.sh工具随用随时下载,保持最新,用完即删除,不占用磁盘空间。

这基本就是本文的全部了,如果大家使用中遇到问题,可以在这里留言或者到 https://github.com/andyzhshg/syno-acme/issues提issue。


[^参考1]: Synology NAS Guide
[^参考2]: 群晖 Let’s Encrypt 证书的自动更新

标签: SSL证书 教程 泛域名 网站 群晖 解析
最后更新:2020年11月2日

本文作者:博主

个人简介:(未填写)

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 沅芃

    大佬,可以更新一下7.0的证书安装吗

    2022年12月26日
    登录以回复
    • 博主

      @沅芃 一样的操作,没有区别啊。我现在DSM7.11up3,也是用这个脚本每个月1日自动运行。

      2022年12月26日
      登录以回复
      • 沅芃

        @博主 我按照步骤运行后,日志显示这个Usage: /volume1/docker/acme/cert-up.sh {update|revert}

        2022年12月26日
        登录以回复
        • 博主

          @沅芃 检查一下路径是不是没写对。

          2022年12月27日
          登录以回复
      • bobo

        @博主 begin reloadWebService
        reloading new cert...
        ./cert-up.sh: line 78: /usr/syno/etc/rc.sysv/nginx.sh: No such file or directory
        relading Apache 2.2
        ./cert-up.sh: line 80: stop: command not found
        ./cert-up.sh: line 81: start: command not found
        ./cert-up.sh: line 82: reload: command not found

        7.1下这个地方要改吧,怎么改呢

        2023年4月3日
        登录以回复
  • 您需要 登录 之后才可以评论
    站内搜索
    分类
    • IPTV / 15篇
    • Linux / 34篇
    • NAS / 252篇
    • Windows / 21篇
    • 其他 / 37篇
    • 游戏 / 3篇
    • 网站 / 125篇
    • 虚拟化技术 / 55篇
    • 资源下载 / 2篇
    • 路由器 / 46篇
    归档
    博客统计信息
    • 4,908,447
    • 570
    • 16,772
    • 2025年7月8日

    © 2025 GXNAS博客 版权所有,未经许可不得转载或引用本站的内容。

    COPYRIGHT ALL RIGHTS RESERVED.

    网站备案号:桂ICP备18008717号