惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
Help Net Security
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
N
News | PayPal Newsroom
V2EX - 技术
V2EX - 技术
博客园 - 【当耐特】
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
有赞技术团队
有赞技术团队
S
Schneier on Security
S
SegmentFault 最新的问题
Google Online Security Blog
Google Online Security Blog
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
IT之家
IT之家
Project Zero
Project Zero
博客园 - 司徒正美
P
Privacy International News Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Jina AI
Jina AI
Security Latest
Security Latest
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
NISL@THU
NISL@THU
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity

博客园 - showonce

使用群晖的SynologyDrive同步本地文件到NAS时如何设置过滤某些文件夹的方法 关于投影机通过TCP网络控制开关机的一些设置 关于电脑按下开机按钮或重启按钮后,电脑没有进入到windows系统桌面,而是进入到蓝屏恢复界面的解决方法 申请个人版的SSL证书(免费的) 第一次接触json所需要的知识总结,用在C#中 Unity开发时,在visual studio编辑器中没有中文注释的解决办法 关于Unity的Android工程,写文件的问题 Unity关于引用.Net或其他C# dll的问题。(我是用的版本是2018.3) 群晖系统,为域名添加证书,以及怎么申请免费的证书 Unity插件DOTween中的中的Ease 首次在macbook使用unity开发遇到的一些列问题 关于使用云服务器做广域网通讯测试的资料整理 二进制、六进制、八进制、十进制、十六进制等之间的转换规则 Unity中使用PersistentDataPath加载文件 C#进制转换 在VS里编辑unity代码调用系统方法不显示中文注释或英文注释 打开本地【C】【D】【E】驱动器时候提示 X:\ 找不到应用程序 - showonce windows系统开机启动一个程序的方法-总结 vlc的几种播放状态
群晖通过 acme.sh 申请 ZeroSSL 泛域名证书(适配 80 端口封锁)+ 自动续期同步完整步骤
showonce · 2025-12-26 · via 博客园 - showonce
  • 适配场景:运营商封锁 80 端口,无法通过 HTTP-01 验证申请证书
  • 证书类型:泛域名 SSL 证书(xjunqiang.cn + *.xjunqiang.cn),有效期 90 天
  • 核心保障:自动续期 + 自动同步到指定证书目录,永久有效

群晖开启 SSH 并登录,切换 root 用户:

  1. 获取阿里云 AccessKey(域名解析需托管在阿里云):
    • 登录阿里云控制台 → 头像 → AccessKey 管理 → 创建 AccessKey
    • 保存AccessKey IDAccessKey Secret(后续配置用)
# 强制安装acme.sh(忽略crontab/socat提示)
curl https://get.acme.sh | sh -s email=你的邮箱@163.com --force

# 加载acme.sh(群晖ash shell无需bashrc)
alias acme.sh='/root/.acme.sh/acme.sh'
# 替换为你的阿里云AccessKey
export Ali_Key="你的AccessKey ID"
export Ali_Secret="你的AccessKey Secret"

# 申请泛域名证书(自动添加/删除DNS TXT记录)
/root/.acme.sh/acme.sh --issue --dns dns_ali -d xjunqiang.cn -d *.xjunqiang.cn --force
  • 等待脚本执行完成,看到Cert success即为申请成功
  • 证书生成路径:/root/.acme.sh/xjunqiang.cn_ecc/
# 1. 备份QU91tw原证书
mkdir -p /usr/syno/etc/certificate/_archive/QU91tw/bak
cp /usr/syno/etc/certificate/_archive/QU91tw/*.pem /usr/syno/etc/certificate/_archive/QU91tw/bak/

# 2. 清空QU91tw旧证书
rm -f /usr/syno/etc/certificate/_archive/QU91tw/{cert,chain,fullchain,privkey}.pem

# 3. 复制新证书(适配acme.sh的.cer格式→群晖.pem格式)
cp /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.cer /usr/syno/etc/certificate/_archive/QU91tw/cert.pem
cp /root/.acme.sh/xjunqiang.cn_ecc/ca.cer /usr/syno/etc/certificate/_archive/QU91tw/chain.pem
cp /root/.acme.sh/xjunqiang.cn_ecc/fullchain.cer /usr/syno/etc/certificate/_archive/QU91tw/fullchain.pem
cp /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.key /usr/syno/etc/certificate/_archive/QU91tw/privkey.pem

# 4. 修复证书权限(群晖硬性要求)
chmod 400 /usr/syno/etc/certificate/_archive/QU91tw/*.pem
chown root:root /usr/syno/etc/certificate/_archive/QU91tw/*.pem

# 5. 验证证书有效期(应显示2026-03-26)
openssl x509 -in /usr/syno/etc/certificate/_archive/QU91tw/cert.pem -noout -dates

  这里的QU911w是我自己在DSM的证书正添加的,这个可以在SSH中去查看

# 创建同步脚本
cat > /root/.acme.sh/sync_qu91tw.sh << EOF
#!/bin/bash
# 同步续期后的证书到QU91tw
cp /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.cer /usr/syno/etc/certificate/_archive/QU91tw/cert.pem
cp /root/.acme.sh/xjunqiang.cn_ecc/ca.cer /usr/syno/etc/certificate/_archive/QU91tw/chain.pem
cp /root/.acme.sh/xjunqiang.cn_ecc/fullchain.cer /usr/syno/etc/certificate/_archive/QU91tw/fullchain.pem
cp /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.key /usr/syno/etc/certificate/_archive/QU91tw/privkey.pem

# 修复权限
chmod 400 /usr/syno/etc/certificate/_archive/QU91tw/*.pem
chown root:root /usr/syno/etc/certificate/_archive/QU91tw/*.pem

# 重启nginx生效
systemctl restart nginx
EOF

# 给脚本添加执行权限
chmod +x /root/.acme.sh/sync_qu91tw.sh
# 写入续期钩子到证书配置文件
sed -i '$a RENEW_HOOK="/root/.acme.sh/sync_qu91tw.sh"' /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.conf

# 验证钩子是否添加成功(显示RENEW_HOOK=脚本路径即成功)
grep "RENEW_HOOK" /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.conf
  1. 登录 DSM → 控制面板 → 任务计划 → 新增 → 「计划的任务」→ 「用户定义的脚本」
  2. 常规设置:
    • 任务名称:证书同步到 QU91tw
    • 用户:root(必须选 root)
    • 勾选「启动时运行」(可选)
  3. 计划设置:
    • 频率:每月
    • 日期:23 号(acme.sh 续期后 1 天)
    • 时间:凌晨 3 点
  4. 任务设置 → 执行命令:/root/.acme.sh/sync_qu91tw.sh
  5. 保存并测试运行(无报错即成功)
# 1. 查看acme.sh证书列表(确认Renew时间)
/root/.acme.sh/acme.sh --list

# 2. 手动测试同步脚本(无报错即成功)
/root/.acme.sh/sync_qu91tw.sh

# 3. 查看QU91tw证书最终有效期
openssl x509 -in /usr/syno/etc/certificate/_archive/QU91tw/cert.pem -noout -dates
# 手动续期证书
/root/.acme.sh/acme.sh --renew -d xjunqiang.cn --force

# 手动同步到QU91tw
/root/.acme.sh/sync_qu91tw.sh

# 回滚QU91tw原证书(如需恢复)
cp /usr/syno/etc/certificate/_archive/QU91tw/bak/*.pem /usr/syno/etc/certificate/_archive/QU91tw/ && systemctl restart nginx

------------------------------------------------------------------------------------------------------------------------------------------

  1. 自动续期:acme.sh 默认提前 30 天(2026-02-23)自动续期证书
  2. 自动同步:续期后通过 RENEW_HOOK 自动执行脚本,同步新证书到 QU91tw
  3. 兜底同步:DSM 任务计划每月 23 号强制同步,避免钩子失效
  4. 权限保障:同步脚本自动修复证书权限,符合群晖要求
  1. 阿里云 AccessKey 需保留 DNS 解析 API 权限,不可删除 / 禁用
  2. 证书有效期 90 天,续期后自动刷新,无需手动干预
  3. 同步脚本仅影响 QU91tw 目录,不干扰当前使用的 VfnWJK 证书

DSM 任务计划需确保用户为 root,否则无权限操作证书目录

----------------------------------------------------------------------------------------------------------------------------------------

补充:

任务计划名称不要用中文,用英文的。

如何查看当前的默认证书(SSH):cat /usr/syno/etc/certificate/_archive/DEFAULT
如何查看自己在DSM中创建的证书信息(SSH):openssl x509 -in /usr/syno/etc/certificate/_archive/QU91tw/cert.pem -noout -dates

更新:

后续通过acme.sh发现有个错误

[Mon Mar  2 10:43:58 AM CST 2026] It seems that your API file is not correct. Make sure it has a function named: /root/.acme.sh/sync_qu91tw.sh_deploy
[Mon Mar  2 10:43:58 AM CST 2026] Error encountered while deploying.

说明 acme.sh 的脚本格式不兼容,钩子跑失败了。只需要在任务计划中执行自动续签的脚本就可以了

修改错误的地方。

sed -i '/RENEW_HOOK/d; /post_renew/d' /root/.acme.sh/xjunqiang.cn_ecc/xjunqiang.cn.conf