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

174次阅读
没有评论

共计 1973 个字符,预计需要花费 5 分钟才能阅读完成。

目前acme协议版本更新,开始支持泛域名(wildcard),也就是说,可以申请一个类似*.domain.com的单一证书,就可以适配abc.domain.comxyz.domain.com这类的子域名,而不需要单独为每个子域名申请证书了。

acmesh-official/acme.sh 工具已经支持新的协议,我这篇文章就是在这个工具的基础上,实现泛域名的自动更新。为了减少复杂度,我编写了一个一键更新的懒人脚本,来帮助没有时间了解详细原理的同学快速部署。

1. 准备工作

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

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

2. 下载一键更新脚本

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

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

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

解压后大概是这个样子:

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

3. 配置脚本参数

编辑脚本的配置文件config:

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

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

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

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

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

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

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

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

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

4. 配置定时任务

i. 查找脚本路径

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

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

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

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

ii. 创建定时任务

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

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

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

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

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

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

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

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

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

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

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

iii. 试运行脚本

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

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

这样脚本就会运行,自动更新证书,并重启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。

原文链接:https://www.up4dev.com/2018/05/29/synology-ssl-wildcard-cert-update/

正文完
 0
评论(没有评论)

空瓶子部落

文章搜索
推荐阅读
如何批量删除WordPress文章中的特色图像

如何批量删除WordPress文章中的特色图像

在WordPress中,特色图像(Featured Image)是用于突出显示文章或页面的一张图片,有时我们可...
这个轻量免费的项目,看剧忒爽

这个轻量免费的项目,看剧忒爽

想必大家肯定有这样的烦恼,现在想轻松看个电影、追个剧,真是太难了~~打开各种视频平台,不是要付费充会员,就是得...
将质量管理从“救火”转向真正的“管理”

将质量管理从“救火”转向真正的“管理”

有朋友问我: 国内企业的质量管理,究竟是在做管理,还是在救火? 在很多企业,质量管理似乎总是陷入被动整改、问题...
一般人我不告诉他-几何公差与测量

一般人我不告诉他-几何公差与测量

几何公差一般指形位公差,形位公差包括形状公差和位置公差。任何零件都是由点、线、面构成的,这些点、线、面称为要素...
如何提升员工质量意识ppt

如何提升员工质量意识ppt

质量意识是指个人或组织对产品和服务质量的认识和重视程度,它涉及到对质量标准的理解和追求,以及在生产、服务过程中...
最新文章
Free TV:全球免费电视频道 M3U 播放列表,狂揽数万 Star

Free TV:全球免费电视频道 M3U 播放列表,狂揽数万 Star

https://github.com/Free-TV/IPTV 项目简介 Free TV 是一个精心维护的开源...
群晖 Let’s Encrypt 泛域名证书自动更新

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

目前acme协议版本更新,开始支持泛域名(wildcard),也就是说,可以申请一个类似*.domain.co...
可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

还在为找优秀片源难、广告多、平台会员太贵而烦恼?今天给大家挖到一款真正的影视宝藏工具——小猫影视! 作为开源免...
【收藏】一次性解决TV点播/直播自由

【收藏】一次性解决TV点播/直播自由

很多时候,资源就在面前,但是我们视而不见,因为长久的安逸,已经让人失去动手的兴趣。但是每次我需要挨个切换APP...
OpenWrt 存储空间扩容的两种方案

OpenWrt 存储空间扩容的两种方案

说明:当我们通过群晖 VMM 虚拟机安装 Open­Wrt 时,默认会分配一个 10GB 的存储空间,而实际情...
热门文章
提高过程能力指数(CP/CPK)的途径

提高过程能力指数(CP/CPK)的途径

编者按:过程能力指数(CP/CPK)想必各位质量人都耳熟能详、运用自如,质量工程师之家前期也共享过数篇关于过程...
SPC控制图的八种模式分析

SPC控制图的八种模式分析

SPC控制图有八种模式,即八种判断异常的检验准则,每一种检验准则代表一种异常现象,应用SPC控制图进行过程评估...
测量高手放大招:圆跳动测量技巧总结

测量高手放大招:圆跳动测量技巧总结

01. 前言 在五金机加工厂实际的测量工作中,经常碰到要求测量两个要素的圆跳动问题, 利用不同的测量辅件及夹具...
过程能力分析(CP&cpk)

过程能力分析(CP&cpk)

引入过程能力分析的目的? 在我们现有的管理过程中,我们经常会遇到有些具体指标总是不尽人意,存在许多需要改进的地...
新能源汽车 “两会”精神宣贯会

新能源汽车 “两会”精神宣贯会

此次和大家分享新能源汽车相关政策: [embeddoc url=”https://www.ctro...
最新评论
多乐士 多乐士 通过摸索发现ssh拉取会报错,直接网页访问下载会报404错误,不知道原因;但是可以通过群晖CM注册表访问下载,其方法如下: Container Manager-注册表-设置-新增-注册表名称随便写,注册表URL填你的加速地址,勾选信任的SSL自我签署证书,登录信息不填-应用-使用你的地址,这是注册表会显示了,在搜索栏中输入映像名称,搜索结果在每一页的最后一个,你需要划到最后一个进行下载,实测可正常下载安装。 以上供网友参考。
多乐士 多乐士 还有一个比较简单的方法,只是需要一些外部工具。 1、讲损毁硬盘取出,装入外部移动硬盘 2、打开Diskgenius,定位到硬盘 3、格式化系统分区 4、重新插入硬盘 5、存储池->修复存储池即可
多乐士 多乐士 写的不错的文章
辞了老衲 辞了老衲 这个确实有帮助。
渋驀 渋驀 当然任何时候都可以用curl命令和crontab来实现动态更新DDNS的ip地址: 1、安装crontab之后为root用户创建文件/var/spool/cron/root 2、创建并配置ddnsupdate.sh,放到/usr/bin/文件下,文件内容(以he.net为例): Autodetect my IPv4/IPv6 address: IPV4:curl -4 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" IPV6:curl -6 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" 3、添加执行权限chomod +x /usr/bin/ddnsupdate.sh 4、编辑root用户的crontab:*/10 * * * * /usr/binddnsupdate.sh,每10分钟执行一次。好了,可以享受你的DDNS了
21410 21410 请问下载链接在那里?
madkylin madkylin 不错,不错,谢谢分享了,好东西啊 :lol:
feilung feilung 求方法
zengsuyi zengsuyi 应该挺不错的
zise zise 看看是怎么操作的。。 :oops: