群晖免费SSL域名证书自动更新:开源脚本方式
·

ACME(自动证书管理环境)是一个互联网工程任务组维护的协议,它允许自动化 Web 服务器证书的部署,可以通过其实现 SSL证书的自动申请、续期等。
免费SSL证书3个月都要重新申请一次,然后再更换,实际体验着实不是很美好,还好我发现有开源的一键更新的懒人脚本【syno-acme】,本质是(acmesh-official/acme.sh ),但是这个懒人一键脚本省去部署的麻烦,只需下载文件修改配置参数即可,操作更简单方便了。

准备工作
- 黑群晖环境:已安装并正常运行的 DSM 系统;
- 域名解析:确保域名已正确解析到黑群晖的公网 IP 地址;
- 管理员权限:需要 DSM 管理员账号操作;
-ID和密钥:脚本需要获取对应DNS服务商后台的操作权限。
下载脚本
项目开源地址:https://github.com/andyzhshg/syno-acme。
通过Tags下载打包好的版本:Tags选择 v0.3.0_dsm7_beta

将下载的脚本工具上传到NAS的任意目录下,并解压。

配置脚本参数
编辑脚本的配置文件config
- 主要修改图中红色框内容
- 域名(不包含www https的部分,如baidu.com)
- DNS类型(阿里云(dns_ali),Dnspod(dns_dp),Godaddy(dns_gd)等)
- ID和密钥,不同DNS类型只需要修改对应部分即可(一般在控制台查看或创建即可,我使用阿里云,使用 RAM 用户 AccessKey,配置为SSL管理权限)


配置文件中为包含你的DNS类型,可以参照来添加自己的配置。
https://github.com/acmesh-official/acme.sh/tree/master/dnsapi
阿里云,目前可使用 RAM 用户 AccessKey


NAS创建定时任务(周期更新SSL)
- 复制脚本cert-up.sh文件的绝对路径;
- 在 File Station 中找到解压后的v0.3.0_dsm7_beta文件夹下的cert-up.sh文件,右键属性;
- 复制完整的绝对路径到剪贴板。


群晖NAS新增计划任务
- 控制面板 –> 任务计划 –> 新增 –> 计划的任务 –> 用户自定义的脚本;
- 设置任务名称和操作用户,需要注意的是这里一定要选择root;
- 设置计划的时间和周期,最好小于3月更新一次(免费SSL证书有效期,目前只有3个月)。




设置执行脚本
关键:cert-up.sh路径+update
我们可以将脚本的输出重定向到了一个log.txt的文件中,以方便后期查看脚本的执行情况:
脚本命令为(注意没有换行):
/volume1/nas_share/certs/syno-acme/cert-up.sh update >> /volume1/nas_share/certs/syno-acme/log.txt 2>&1
具体的路径是cert-up.sh的路径(之前复制的那个绝对路径)。
不需要输出执行结果到文件,可只执行“update”即可。
/volume1/nas_share/certs/syno-acme/cert-up.sh update >> /volume1/nas_share/certs/syno-acme/log.txt 2>&1
测试脚本是否正常:
选择刚刚创建的自动更新ssl任务,右键运行即可。

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



DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)