侧边栏壁纸
  • 累计撰写 15 篇文章
  • 累计收到 1 条评论

群晖7.X通过ACME自动续签SSL证书记录

炫天
2024-09-07 / 0 评论 / 2 阅读 / 正在检测是否收录...

太TM折腾了,网上找了许多教程都失败了,翻了1个都小时官方wiki总算是让老子成功了。
记录一下吧。
或许也能帮帮其他使用的朋友们。

1、群晖打开container manager 搜索acme下载第一个|或者使用Xshell等工具连接SSH 使用以下命令拉去镜像docker pull neilpang/acme.sh
ps.先在docker目录下建立一个acme.sh文件夹

2、运行acme.sh镜像 docker容器名设置为acme,当然你也可以更改,但是后续的脚本也需要做相应的更改。

3、网络选择HOST 执行命令中填写daemon

4、以下横线内脚本代码用记事本写入,保存为文件名acme.sh
根据注释更改成自己的相关信息,这里面有不会的百度,毕竟这篇是记录文,不是一个保姆级教程。


skycn 自动续签ssl证书脚本

你的域名

DOMAIN='djtop.top'

证书供应商

CERT_SERVER='letsencrypt'

DNS供应商 可选 dns_dp(腾讯云) dns_ali(阿里云) dns_cf 其他可查https://github.com/acmesh-official/acme.sh/wiki/dnsapi

DNS="dns_cf"

群晖账号密码

SYNO_Username=''
SYNO_Password=''

如果开启了双重验证请在浏览器登录时选中保存此设备,然后从COOKIE中获取did cookie

SYNO_Device_Name="CertRenewal"
SYNO_DID=''

以下群晖配置非必要不要更改

SYNO_Hostname="localhost" # Specify if not using on localhost
SYNO_Scheme="http"
SYNO_Port="5000"

要添加的证书的名字,空字符串("")的话就是替代默认证书,一般建议使用空字符串,除非你有多个证书

SYNO_Certificate=''

以下三选一

DNSPOD.CN 腾讯云

DP_Id=''
DP_Key=''

阿里云

Ali_Key=''
Ali_Secret=''

CF

CF_Key=''
CF_Email=''

case $DNS in

"dns_dp")
a="DP_Id=${DP_Id}"&&b="DP_Key=${DP_Key}"
;;
"dns_ali")
a="Ali_Key=${Ali_Key}"&&b="Ali_Secret=${Ali_Secret}"
;;
"dns_cf")
a="CF_Key=${CF_Key}"&&b="CF_Email=${CF_Email}"
;;

esac
SYNOUsername="SYNO_Username=${SYNO_Username}"
SYNOPassword="SYNO_Password=${SYNO_Password}"
SYNODeviceID="SYNO_Device_ID=${SYNO_DID}"
SYNOHostname="SYNO_Hostname=${SYNO_Hostname}"
SYNOScheme="SYNO_Scheme=${SYNO_Scheme}"
SYNOPort="SYNO_Port=${SYNO_Port}"
SYNOCertificate="SYNO_Certificate=${SYNO_Certificate}"
SYNODID="SYNO_DID=${SYNO_DID}"
SYNODeviceName="SYNO_Device_Name=${SYNO_Device_Name}"

docker exec -e ${a} -e ${b} acme acme.sh --log --server "${CERT_SERVER}" --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" >> /volume2/docker/acme.sh/log.txt 2>&1
docker exec -e ${SYNOUsername} -e ${SYNOPassword} -e ${SYNODeviceID} -e ${SYNOHostname} -e ${SYNOScheme} -e ${SYNOPort} -e ${SYNOCertificate} -e ${SYNODID} -e ${SYNODeviceName} acme acme.sh --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" --deploy --deploy-hook synology_dsm >> /volume2/docker/acme.sh/log.txt 2>&1`


5、将脚本上传到群晖里对应的acme容器目录,最好是上面所映射的目录中,并在群晖添加任务计划。

群晖:控制面板---计划任务
新建任务 :名称任意,账号root,运行脚本 里面放入如下命令。地址根据实际修改,主要是
bash /volume2/docker/acme.sh/acme.sh>>/volume2/docker/acme.sh/log.txt 2>&1

图床坏了,以后有心情再补充贴图吧。
没意外的话,你也已经成功了。

0

评论 (0)

取消