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_TOTP_SECRET=''
#以下群晖配置非必要不要更改
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
c="SYNO_Username=${SYNO_Username}"
d="SYNO_Password=${SYNO_Password}"
e="SYNO_TOTP_SECRET=${SYNO_TOTP_SECRET}"
f="SYNO_Hostname=${SYNO_Hostname}"
g="SYNO_Scheme=${SYNO_Scheme}"
h="SYNO_Port=${SYNO_Port}"
i="SYNO_Certificate=${SYNO_Certificate}"
j="SYNO_DID=${SYNO_TOTP_SECRET}"
docker exec -e ${a} -e ${b} acme acme.sh --log --server "${CERT_SERVER}" --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}"
docker exec -e ${c} -e ${d} -e ${e} -e ${f} -e ${g} -e ${h} -e ${i} -e ${j} acme acme.sh --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" --deploy --deploy-hook synology_dsm
5、将脚本命名为acme.sh并上传到群晖,最好是上面所映射的目录中,并在群晖添加任务计划。
root!!!
双重认证
如果你的群晖开启了双重认证一定要把did填入脚本中,以下为怎么获取did1、一定要勾选箭头所指
一定要勾选箭头所指
2、按F12打开开发者模式,然后找如图所示
3、将获取的did填入这里!
网友评论