Docker下载neilpang/acme.sh
安装neilpang/acme.sh
使用与Docker Host相同的网络
增加自行命令daemon
容器名称
映射目录
配置好以后正常启动即可
配置文件
在群晖的/docker/acem.sh文件夹下创建文件名为acme.sh的文件,内容如下:
#你的域名
DOMAIN="example.com"
#证书供应商
CERT_SERVER="letsencrypt"
#DNS供应商 可选 dns_dp(腾讯云) dns_ali(阿里云) dns_cf 其他可查https://github.com/acmesh-official/acme.sh/wiki/dnsapi
DNS="dns_ali"
#群晖账号密码【有管理员权限的账号】
SYNO_Username="群晖账号"
SYNO_Password="群晖密码"
#如果开启了双重验证请在浏览器登录时选中保存此设备,然后从COOKIE中获取did cookie
SYNO_Device_Name="CertRenewal"
SYNO_DID=""
#以下群晖配置非必要不要更改
SYNO_Hostname="群晖本地IP" # Specify if not using on localhost
SYNO_Scheme="http"
SYNO_Port="群晖http登陆端口"
#要添加的证书的名字,空字符串("")的话就是替代默认证书,一般建议使用空字符串,除非你有多个证书
SYNO_Certificate=""
#以下三选一
#阿里云 (自行获取)
Ali_Key="阿里云域名key"
Ali_Secret="阿里云域名密钥"
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
定时任务
任务脚本:
bash /volume1/docker/acme.sh/acme.sh >> /volume1/docker/acme.sh/log.txt 2>&1
创建好以后运行一下定时任务即可更新证书,设置好定时运行时间,就可以实现定期更新证书了
注意事项
1、创建的docker容器名称要与acme.sh脚本中的docker容器名称一致;
2、脚本文件路径与定时脚本中填写的路径要一致;
评论区