本文转载自:http://www.up4dev.com/2018/05/29/synology-ssl-wildcard-cert-update/,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

去年曾经写过一篇文章介绍如 何在群晖的 NAS 通过 acme 协议更新 Let’s Encrypt 的 HTTPS 证书 。最近突然发现acme协议版本更新,开始支持泛域名(wildcard),也就是说,可以申请一个类似 *.domain.com 的单一证书,就可以适配 abc.domain.com , xyz.domain.com 这类的子域名,而不需要单独为每个子域名申请证书了。

Neilpang/acme.sh 工具很快就支持新的协议了,我这篇文章就是在这个 工具 的基础上,实现泛域名的自动更新。为了减少复杂度,我编写了一个一键更新的懒人脚本,来帮助不愿意了解原理的同学快速部署。

1. 准备工作

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

2. 下载一键更新脚本

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

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

可以通过 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 。打开对应文件, 一般都可以在文件的头部找到需要设置的授权信息对应的密钥,比如阿里云的授权密钥所在的位置如下图所示:

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

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。

群晖 Let's Encrypt 泛域名证书自动更新相关推荐

  1. acme.sh申请Let‘s encrypt泛域名证书Docker化部署

    acme.sh申请Let's encrypt泛域名证书Docker化部署 一:手动安装acme.sh 二:申请证书 2.1 DNSAPI申请方式 2.2 DNS手动校验方式 2.3 HTTP校验方式申 ...

  2. Let's Encrypt 泛域名证书申请

    泛域名 泛域名证书又名通配符证书是SSL证书中的其中一种形式,一般会以通配符的形式(如:*.domain.com)来指定证书所要保护的域名. OV证书和DV证书都会有通配符的域名形式提供,而EV证书一 ...

  3. 为 KubeSphere 集群启用免费的泛域名 SSL 证书并实现证书自动更新和分发

    作者:scwang18,主要负责技术架构,在容器云方向颇有研究. 前言 KubeSphere 集群默认安装的证书是自签发证书,浏览器访问访问会发出安全提醒.本文记录了利用 let's encrytp ...

  4. Kubernetes集群配置免费的泛域名证书支持https

    前言 kubernetes 集群默认安装的证书是自签发证书,浏览器访问会发出安全提醒. 本文记录了利用 dnspod . cert-manager .let's encrytp 等开源组件,实现泛域名 ...

  5. let's encrypt部署免费泛域名证书

    环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...

  6. CentOS 7配置Let’s Encrypt支持免费泛域名证书

    Let's Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...

  7. Rocky(Centos)使用acme.sh申请安装Let‘s Encrypt泛域名ECC证书(阿里DNS)

    现代的浏览器开始有将 https 访问作为默认访问方式的倾向,因此需要将网站配置为https 访问. Let's Encrypt 组织提供免费的 TLS 加密证书,用于协助web服务器实现https协 ...

  8. 宝塔ssl验证域名失败_申请一年期限的AlphaSSL泛域名证书 – 安装第三方证书

    陌涛一开始用的是腾讯云的TrustAsia 域名型SSL证书(DV)(1年),但是子域名比较多,所以放弃.转而使用时长为3个月的Let's Encrypt.还可以通过宝塔自动续签,体验良好.不过这玩意 ...

  9. Let‘sEncrypt快速颁发及自动续签泛域名证书实践指南

    文章目录 0x00 前言简述 0x01 快速安装配置 1.acme.sh 0x02 证书自动签发实践 1.acme.sh + Cloudflare 实现自动签发泛域名证书. 0x03 使用实例 1.简 ...

最新文章

  1. 汉语转拼音工具、新华字典API——两个支持Python的中文资源
  2. VMware下桥接设置
  3. Python:一篇文章掌握Numpy的基本用法
  4. linux操作系统的特点包括什么,什么是Linux操作系统?有哪些主要特点?
  5. JAVA中indexOf函数用法
  6. Shell教程(二):变量、特殊变量
  7. python k线合成_手把手教你写一个Python版的K线合成函数
  8. java+的数组分割符_Java:使用分隔符连接基元数组
  9. 使用IDEA创建springcloud父工程
  10. C++之C/C++内存对齐
  11. ant+jenkins+testng+selenium集成环境搭建
  12. 前端接收到的Url参数有中文乱码
  13. JavaScript DOM基础2
  14. php 延迟输出,PHP循环;如何打印每个结果并将其延迟一秒钟,然后再回显另一个结果?...
  15. HTC手机手动解锁教程
  16. MAC本地修改mysql数据库密码
  17. 深度学习与计算机视觉教程(6) | 神经网络训练技巧 (上)(CV通关指南·完结)
  18. hp服务器虚拟网卡,HP服务器升级网卡固件、驱动来解决网卡bug的操作办法
  19. python问题 Traceback (most recent call last)
  20. Q_01_04 量子比特

热门文章

  1. 收藏:WBS任务分解法
  2. 技术出色的BitTorrent是如何倒掉的?
  3. 椒盐噪声及高斯噪声图片加噪python实现(附代码)
  4. 【Python爬虫】:代理IP的使用 提升访问量
  5. 六人行-ForeFront
  6. Web Storage本地存儲
  7. 热度算法,基于内容,用户个性化推荐
  8. 每日五分钟:学习编写编程语言
  9. 2020年Coremail邮件安全竞赛完满闭幕,北大计算中心战队勇夺第一
  10. 1. Matplotlib简介,画余弦和正弦函数图像