没事瞎捣鼓






群晖泛域名证书管理工具 – 完整部署教程


🚀 群晖泛域名证书管理工具

从零开始完整部署教程 · 全自动续期 · 微信通知

版本 2.0 | 最后更新: 2026年3月

✨ 功能特点

🔐

自动续期

每天检查,到期前自动续期

📱

微信通知

续期成功实时推送

🖥️

群晖集成

自动部署到DSM系统

🛡️

安全可靠

遵循Let’s Encrypt限制

🎯 1. 准备工作

📌 群晖要求

1

✅ SSH服务已开启
控制面板 → 终端机和SNMP → 启动SSH

2

✅ 管理员权限
admin账户或sudo权限

3

✅ 公网域名
如 example.com

🔑 获取阿里云API密钥

  1. 登录阿里云控制台:RAM访问控制
  2. 创建RAM用户(或使用已有用户)
  3. 添加权限:AliyunDNSFullAccess
  4. 创建AccessKey,保存好:
# AccessKey示例
AccessKey ID: LTAI5tKyZ4vBnGwDXJ7s5
AccessKey Secret: pEvtVnsq9MhnXZsdKhrSSdbmeK

💬 注册Server酱(微信通知)

  1. 访问:https://sct.ftqq.com/
  2. 使用GitHub账号登录
  3. 点击”点我发送消息”,复制您的 SendKey
# SendKey示例
SCT317533TOPmSzW9VST0ahqwViOmMKMr4

🔑 2. SSH登录群晖


# 在电脑上打开终端(Windows用PowerShell或Putty)
ssh admin@你的群晖IP
# 输入密码登录后
sudo -i # 切换到root权限
✅ 成功标志: 命令行提示符变为 root@群晖主机名:~#

📦 3. 安装基础环境


# 创建必要的目录
mkdir -p /volume1/docker/acme
mkdir -p /volume1/docker/certs
mkdir -p /volume1/docker/acme/config
cd /volume1/docker/acme

# 安装 acme.sh
curl https://get.acme.sh | sh -s email=你的邮箱@example.com

# 创建符号链接
ln -s /usr/local/share/acme.sh /root/.acme.sh

# 设置默认CA为Let’s Encrypt
/usr/local/share/acme.sh/acme.sh –set-default-ca –server letsencrypt

进度 30%

📝 4. 部署证书管理脚本

4.1 创建脚本文件


vi /volume1/docker/acme/cert_manager.sh

4.2 复制脚本内容

⚠️ 注意: 脚本内容较长,请从教程末尾的完整脚本代码部分复制。

i 进入编辑模式,粘贴后按 ESC,输入 :wq 保存退出。

4.3 设置执行权限


chmod +x /volume1/docker/acme/cert_manager.sh

4.4 测试运行


bash /volume1/docker/acme/cert_manager.sh –help

✅ 成功标志: 显示彩色帮助信息

进度 50%

⚙️ 5. 首次运行配置

5.1 运行脚本


bash /volume1/docker/acme/cert_manager.sh

5.2 配置阿里云API密钥

1. 选择菜单 1
2. 输入您的 AccessKey ID
3. 输入您的 AccessKey Secret
4. 确认信息正确

5.3 添加域名

1. 选择菜单 21
2. 输入主域名:你的域名.com(如 spnas.com)
3. 输入泛域名:*.你的域名.com(如 *.spnas.com)
4. 输入备注(可选)

5.4 查看域名列表

# 选择菜单 2 查看已添加的域名
序号 主域名 泛域名 备注
1 spnas.com *.spnas.com 主要域名

🧪 6. 测试证书申请

6.1 使用Debug模式测试

# 在脚本菜单中选择 4 → 1
# 输入域名序号(如 1)

Debug模式会显示:

  • ✅ API密钥是否正确
  • ✅ DNS解析是否正常
  • ✅ 域名验证是否通过

6.2 申请正式证书

# 在脚本菜单中选择 3 → 1

✅ 成功标志:

  • “证书申请成功” 提示
  • 证书已保存到 /volume1/docker/certs/你的域名/

6.3 查看证书状态

# 在脚本菜单中选择 5
序号 域名 状态 剩余天数 过期时间
1 spnas.com ✅已导出 88 May 29 2026

进度 70%

💬 7. 配置微信通知

7.1 进入群晖部署设置

# 在脚本菜单中选择 6
选项 功能
1 查看部署钩子状态
2 启用/创建部署钩子
3 测试部署钩子
4 查看部署日志
5 清空部署日志
6 配置微信通知 SendKey
7 查看当前 SendKey
8 测试微信通知
9 查看微信通知日志

7.2 配置SendKey

1. 选择 6
2. 输入您的Server酱 SendKey
3. 确认保存

7.3 测试微信通知

1. 选择 8
2. 查看微信是否收到测试消息

✅ 成功标志: 微信收到测试通知

7.4 创建部署钩子

1. 选择 2 创建群晖自动部署脚本
2. 选择 3 测试部署功能

8. 设置自动续期

8.1 添加定时任务


# 编辑crontab
crontab -e

# 添加以下行(每天凌晨3点执行)
0 3 * * * /bin/bash /volume1/docker/acme/cert_manager.sh –renew >/dev/null 2>&1

8.2 验证定时任务


# 查看已添加的定时任务
crontab -l

📌 续期策略:

  • 每天检查一次证书有效期
  • 剩余天数 < 60天时自动续期
  • 遵循Let’s Encrypt频率限制
  • 续期成功自动发微信通知

进度 90%

🔧 9. 在群晖中使用证书

9.1 导入证书到群晖

1

打开群晖DSM
控制面板

2

安全性 → 证书

3

新增 → 导入证书

9.2 填写证书信息

字段 填写内容
描述 Let’s Encrypt
私钥 /volume1/docker/certs/你的域名/你的域名.key
证书 /volume1/docker/certs/你的域名/fullchain.cer
中间证书 留空

9.3 设置为默认证书

  1. 在证书列表中选中刚导入的证书
  2. 点击 配置
  3. 将主要服务都设置为使用这个证书

✅ 完成! 以后续期会自动部署,无需手动操作

📋 10. 常用命令速查

用途 命令
进入交互菜单 bash /volume1/docker/acme/cert_manager.sh
快速查看状态 bash /volume1/docker/acme/cert_manager.sh --status
手动续期 bash /volume1/docker/acme/cert_manager.sh --renew
查看帮助 bash /volume1/docker/acme/cert_manager.sh --help
测试部署 bash /volume1/docker/acme/syno-deploy-hook.sh
测试微信 bash /volume1/docker/acme/wechat-notify.sh
查看部署日志 tail -f /volume1/docker/acme/syno-deploy.log
查看微信日志 tail -f /volume1/docker/acme/wechat-notify.log
编辑定时任务 crontab -e
查看定时任务 crontab -l

📁 文件结构

/volume1/docker/acme/
├── cert_manager.sh # 主脚本
├── domains.conf # 域名配置文件
├── syno-deploy-hook.sh # 群晖部署钩子
├── wechat-notify.sh # 微信通知脚本
├── config/
│ └── wechat.conf # SendKey配置
├── syno-deploy.log # 部署日志
├── wechat-notify.log # 微信日志
├── cert-manager.log # 主脚本日志
└── renew.log # 续期日志

/volume1/docker/certs/
└── 你的域名.com/ # 域名目录
├── fullchain.cer # 证书文件
└── 你的域名.com.key # 私钥文件



11. 常见问题解决

Q1: 证书申请失败,显示 “InvalidAccessKeyId”

A1: API密钥错误,重新运行菜单1配置正确的密钥

Q2: 证书申请失败,显示 “Domain verification failed”

A2:

  • 确认域名已正确解析到群晖IP
  • 等待DNS生效(最多10分钟)
  • 用Debug模式查看详细错误

Q3: 微信收不到测试通知

A3:

  • 确认SendKey配置正确(菜单6 → 7查看)
  • 检查网络:curl https://sctapi.ftqq.com/你的SendKey.send
  • 查看日志:cat /volume1/docker/acme/wechat-notify.log

Q4: 部署钩子测试失败

A4:

  • 确认证书目录存在:ls -la /volume1/docker/certs/
  • 查看详细日志:cat /volume1/docker/acme/syno-deploy.log
  • 手动运行:bash /volume1/docker/acme/syno-deploy-hook.sh

Q5: 脚本显示乱码

A5:

# 临时禁用颜色
export NO_COLOR=true
bash /volume1/docker/acme/cert_manager.sh

Q6: 如何查看当前证书剩余天数?

A6:

# 方法1:运行脚本选择菜单5
# 方法2:命令行快速查看
bash /volume1/docker/acme/cert_manager.sh –status

🎉 恭喜!配置完成!进度 100%




评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注