侧边栏壁纸
博主头像
平凡之路博主等级

生活原本沉闷,但跑起来就会有风!

  • 累计撰写 82 篇文章
  • 累计创建 10 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

群晖DSM通过acme自动更新ssl证书

平凡之路
2024-05-13 / 2 评论 / 0 点赞 / 1,734 阅读 / 584 字

前言:群晖自带的证书更新没办法使用dns方式更新。现在常用的阿里云和腾讯云免费证书期限都变成90天了。提供能够在群晖上自动化实现定期从letsencrypt更新证书的方法。

1、方案是使用acme官方的docker项目,配合sh脚本执行生成证书并自动部署到群晖dsm上。
在群晖目录下新建该update_ssl.sh脚本

#! /bin/bash
#在群晖目录下新建该sh脚本。
export ACME_VOLUME=/volume1/docker/acme
export DOMAIN=你的域名

echo ">>>>>>> Ken: ==== SSL 更新开始 ===="

echo ">>>>>>> Ken: 1) 准备运行 acme.sh ..."

docker run --rm  -itd  \
  -v "${ACME_VOLUME}":/acme.sh  \
  -e TZ=Asia/Shanghai \
  --net=host \
  --name=acme.sh \
  neilpang/acme.sh daemon


echo ">>>>>>> Ken: 2) 生成证书"
# 下面的变量参数使用dns_api 中定义的即可,你自己域名是哪家的就用哪家的!
docker exec \
-e Tencent_SecretId="腾讯云密钥id" \
-e Tencent_SecretKey="腾讯云密钥key" \
acme.sh \
--issue --dns dns_tencent --dnssleep 60 -d "${DOMAIN}" -d "*.${DOMAIN}" --server letsencrypt

echo ">>>>>>> Ken: 3) 部署证书"

# 为了查看 SYNO_DID 这个 cookie 的内日,可在 Edge 浏览器打开这个页面(假设你的 NAS 登录地址是 192.168.1.200):
# edge://settings/cookies/detail?site=192.168.1.200
# SYNO_DID只有群晖开启了双认证的才需要。

docker exec \
-e SYNO_Username="群晖用户名" \
-e SYNO_Password="群晖密码" \
-e SYNO_Certificate="${DOMAIN}" \
-e SYNO_Create="1" \
-e SYNO_Scheme="https" \
-e SYNO_Port="5001" \
-e SYNO_DID="" \
acme.sh \
--deploy --insecure -d "${DOMAIN}" -d "*.${DOMAIN}" \
--deploy-hook synology_dsm

echo ">>>>>>> Ken: 正在停止 acme.sh"

docker stop acme.sh

echo ">>>>>>> Ken: #### SSL 更新结束 ####"


2、在群晖的任务计划下增加一个定时计划执行该脚本实现更新证书。
注意:脚本要使用root用户执行否则会没有权限。
执行的脚本:

bash /volume1/docker/acme/update_ssl.sh >>/volume1/docker/acme/log_acme/log.txt 2>&1

要查看执行日志在/volume1/docker/acme/log_acme/log.txt 文件中!

0

评论区