使用 Acme.sh 自动更新群晖证书。

准备工作

  • 开启终端 SSH

安装 Acme.sh

curl https://get.acme.sh | sh -s email=my@example.com --no-cron

email用于证书签发机构相关通知,现在作用不大。

--no-cron不安装默认的 cron 定时任务,这与群晖不兼容,群晖有自己的定时任务执行方式,稍后添加。

更多安装方式,参阅Github 安装指南

签发证书

省略,自行了解。

部署证书

export SYNO_USERNAME="username"
export SYNO_PASSWORD="password"
export SYNO_SCHEME="https"
export SYNO_HOSTNAME="nas.example.com"
export SYNO_PORT="443"
export SYNO_CREATE=1
export SYNO_CERTIFICATE="AcmeRobot"

acme.sh --deploy -d nas.example.com --deploy-hook synology_dsm
  • SYNO_USE_TEMP_ADMIN=1:使用临时管理员完成认证,不需要提供用户名和密码,只适用于本地操作,不适用于 docker 环境。
  • SYNO_USERNAME:用户名
  • SYNO_PASSWORD:密码
  • SYNO_SCHEME:默认 "http"
  • SYNO_HOSTNAME:默认 "localhost"
  • SYNO_PORT:默认 "5000"
  • SYNO_CREATE=1:允许证书不存在时创建证书
  • SYNO_CERTIFICATE:通过证书描述替换指定的证书

定时任务

控制面板 > 任务计划 > 新增 > 计划的任务 > 用户定义的脚本,创建以下任务。

任务名称:AcmeRobot
用户账户:xueye(建议使用普通用户)
计划:每天 00:00
运行命令:

/var/services/homes/xueye/.acme.sh/acme.sh --cron --home /var/services/homes/xueye/.acme.sh
最后修改:2025 年 11 月 20 日
如果觉得我的文章对你有用,请随意赞赏