折腾本腾
群晖Synology使用ACME获取SSL证书 - 哔哩哔哩
00 分钟
2024-1-5
2024-3-2
type
status
date
slug
summary
tags
category
icon
password
URL
notion image

废话

之前一直用的是Docker的方案,无奈莫名其妙的无法正常使用,恰逢域名到期换新域名,索性推倒重来。
acme.sh是一款方便,强大的域名证书申请&续签工具,支持一键申请&持久化续签。其支持HTTP验证和 DNS 两种域名验证方式,并且可同时申请多张单域名,泛域名证书,并自动续签证书和部署到项目。
本文记录自己使用regery注册的.su域名通过Cloudflare托管获得SSL证书。

目录

一、Cloudflare
1.Cloudflare托管设置
2.关闭加密模式
3.获取Cloudflare API TOKEN
二、群晖准备工作
1.新建用户
三、安装ACME
1.安装ACME
2.创建变量
3.创建证书
4.证书登录到群晖

一、Cloudflare

由于regery注册域名需要使用俄罗斯籍护照,照猫画虎的概率不大,这里就跳过域名注册只说Cloudflare托管的操作。
1.Cloudflare托管设置
登录CloudFflare控制面板 https://dash.cloudflare.com/ ,在网站 - 主页中选择添加站点
输入迁入的一级域名并点击添加站点,计划选择free足够使用。
通过Cloudflare的指引前往域名注册商更改已注册域名的名称服务器(NAME SERVERS),每个域名服务商的方法不同,我这里提供我这边的修改方法。
修改之后等待修改生效即可,Cloudflare会发送邮件提示已生效。以后添加DNS记录就通过Cloudflare来操作。
2.关闭加密模式
点击SSL/TLS - 概述,选择关闭(不安全);然后继续点击SSL/TLS - 边缘证书,关闭自动HTTPS重写(这个在后续很重要,之前注册域名的时候疯狂报错,因为他会把HTTP流量重定向至HTTPS导致ACME超时,后续才排查到这个问题。)
3.获取Cloudflare API TOKEN
点击现在界面的右上角人像标志 - 点击我的个人资料
依次点击 API令牌 - 创建令牌 - 编辑区域DNS - 使用模板
进入模板之后选择需要控制的域名之后下一步并创建令牌
此时已经添加了令牌权限并生成了令牌,把生成结果保存后续留用。

二、群晖准备工作

1.新建用户
群晖(以DSM7为例)中点击控制面板 - 用户与群组 - 用户账号 - 新增
我这里使用了ACME作为名称,之后选择下一步 在加入用户群组里赋予账户administrators权限,之后一路下一步(此操作是为了与主用户区分,不受主用户的AF2(两步验证影响))。

三、ACME

1.安装ACME
使用刚才新建的用户进入群晖shell界面,输入如下命令。注意下面的sudo chown -R acme中的acme是你群晖注册的用户名
2.创建变量
现在我们有了必要的文件,我们需要为脚本创建一些变量。请务必将以下内容替换为您的信息。由于我的域名是.su,zerossl会直接拒绝我的申请,所以下面使用Let's Encrypt
接下使用以下命令获取第一个证书。请务必更新您的域名。
3.创建证书
  • -server letsencrypt(使用letsencrypt注册) -d "*.abc.com"(注册通配符域名) -d "abc.com"(注册单域名)
完成该过程大约需要 1 分钟。屏幕上有文字可以让您知道发生了什么。此过程只是创建证书并将其下载到您的 Synology 设备,它并没有告诉 Synology 开始使用它。
4.证书登录到群晖
您应该会看到一些文本,表明脚本能够登录到您的 Synology 设备、获取证书、应用证书并重新启动 Web 服务器。如果您现在使用 https 登录 Synology 设备,您应该会看到一个有效的证书(有锁了)。
现在您已经拥有了一个可以正常工作的SSL证书,但期限只有90天。通过登录 Synology 进入控制面板 - 任务计划,可以很容易地自动更新证书。单击新增并选择计划任务和用户定义的脚本。
给任务赋予一个名字,我用的是acme,转到计划选择在以下日期运行 - 每月重复,这样就能每个月都自动触发一次。转到任务设置里填入以下脚本代码并确定。
做好如下设置之后脚本就会在每月自动续期一次,就此ACME部署完毕。

后记

如果群晖不想新开用户且主用户开了AF2(两步验证),则需要在第三段第2小节里增加DID(如下代码),其中DID的获取方法可以参考https://post.smzdm.com/p/a6d5dl6e/ 中主要内容的第一段第二小节,说的很详细。
部署时下载的压缩包可以删除,命令如下
上一篇
Unraid Nvidia Power Save使用Nvidia显卡开启省电模式待机7w - 哔哩哔哩
下一篇
黑群晖7.0修复photos中视频不生成缩略图的问题 - 何故

评论
Loading...