群晖7.2使用ACME.SH更新SSL证书 双重认证 泛域名 DNSPOD
起因
letsencrypt的SSL证书只有三个月有效期,相信大家的nas也都使用了SSL证书,来开启HTTPS。三个月的有效期每次手动申请手动上传很麻烦,因此不断百度发现使用acme.sh 配合群晖的任务计划能够自动更新证书。
可能张大妈已经有了同类型的,但我认为我的那个垃圾脚本可能要方便一点(只是可能)
开了双重验证登录的也可以使用
过程
1、群晖打开container manager 搜索acme下载第一个|或者使用Xshell等工具连接SSH 使用以下命令拉去镜像docker pull neilpang/acme.sh
群晖7.2的注册表勉强能用,建议还是使用命令拉取2、运行acme.sh镜像 docker名一定要是acme不然后面的垃圾脚本可能你要自己更改。
映射目录,随你怎么放。3、网络选择HOST 执行命令中填写daemon
注意执行命令和网络成功运行就行4、现在开始写一个脚本并添加到群晖的任务计划中执行
垃圾代码,建议放到上面所映射的目录,文件名为acme.sh#你的域名
DOMAIN=''
#证书供应商
CERT_SERVER='letsencrypt'
#DNS供应商 可选 dns_dp(腾讯云) dns_ali(阿里云) dns_cf 其他可查https://github.com/acmesh-official/acme.sh/wiki/dnsapi
DNS="dns_dp"
#群晖账号密码
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}" >> /volume1/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 >> /volume1/docker/acme.sh/log.txt 2>&1
5、将脚本命名为acme.sh并上传到群晖,最好是上面所映射的目录中,并在群晖添加任务计划。
root!!!双重认证
如果你的群晖开启了双重认证一定要把did填入脚本中,以下为怎么获取did
1、一定要勾选箭头所指
一定要勾选箭头所指2、按F12打开开发者模式,然后找如图所示
3、将获取的did填入这里!
结果
总结
弄这个的原因主要是网络上的教程,不知道怎么回事我怎么弄都不行,然后就自己弄了以下,其实都大差不差。
希望大家能喜欢。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
九九天
校验提示文案
值友9128943033
校验提示文案
技术宅是我梦想
校验提示文案
裸奔的老蜗牛
校验提示文案
Duuck
校验提示文案
提莫爹
校验提示文案
雅典猛男
log:
invalid domain
Error add txt for domain
校验提示文案
Winma
校验提示文案
我不是超哥
校验提示文案
伢伢爸爸
校验提示文案
Gaara
校验提示文案
塵世不再
校验提示文案
天煞孤星楚留香
校验提示文案
超逸绝尘
校验提示文案
路远求索
校验提示文案
whbain
校验提示文案
META2213
校验提示文案
值友1213643167
校验提示文案
值友1213643167
校验提示文案
值友2479469692
校验提示文案
向日葵_Y
[Tue Sep 17 07:27:29 UTC 2024] Your cert key is in: /acme.sh/hundun.online_ecc/hundun.online.key
[Tue Sep 17 07:27:29 UTC 2024] The intermediate CA cert is in: /acme.sh/hundun.online_ecc/ca.cer
[Tue Sep 17 07:27:29 UTC 2024] And the full-chain cert is in: /acme.sh/hundun.online_ecc/fullchain.cer
[Tue Sep 17 07:27:30 UTC 2024] The domain 'hundun.online' seems to already have an ECC cert, let's use it.
[Tue Sep 17 07:27:31 UTC 2024] Logging into localhost:5000...
[Tue Sep 17 07:27:33 UTC 2024] Getting certificates in Synology DSM...
[Tue Sep 17 07:27:34 UTC 2024] Unable to find certificate: hundun.online and is not set.
[Tue Sep 17 07:27:34 UTC 2024] Error deploying for domain: hundun.online
[Tue Sep 17 07:27:34 UTC 2024] Error encountered while deploying.
这最后一步报错,是不是因为
#要添加的证书的名字,空字符串("")的话就是替代默认证书,一般建议使用空字符串,除非你有多个证书
SYNO_Certificate='hundun.online'
这一行写了数值
校验提示文案
值友6625799711
校验提示文案
值友8116208933
校验提示文案
荷兰小胖子
校验提示文案
陌陌之寒
校验提示文案
JaydenYi
校验提示文案
sky300
[Mon Feb 19 06:39:47 UTC 2024] Unable to find certificate: & $SYNO_Create is not set
报的这个错误。搞不定啊
校验提示文案
rui3bo2
校验提示文案
十三十三
/volume3/docker/acme.sh/acme.sh: line 17: $'\r': command not found
/volume3/docker/acme.sh/acme.sh: line 18: $'\r': command not found
/volume3/docker/acme.sh/acme.sh: line 29: $'\r': command not found
/volume3/docker/acme.sh/acme.sh: line 30: $'\r': command not found
/volume3/docker/acme.sh/acme.sh: line 31: $'\r': command not found
/volume3/docker/acme.sh/acme.sh: line 32: syntax error near unexpected token `newline'
/volume3/docker/acme.sh/acme.sh: line 32: `case $DNS in
校验提示文案
值友2479469692
校验提示文案
值友1213643167
校验提示文案
值友1213643167
校验提示文案
Winma
校验提示文案
雅典猛男
log:
invalid domain
Error add txt for domain
校验提示文案
META2213
校验提示文案
提莫爹
校验提示文案
Duuck
校验提示文案
whbain
校验提示文案
路远求索
校验提示文案
超逸绝尘
校验提示文案