群晖使用了 letsencrypt 的免费证书,3 个月要更新一次,之前是在 Mac 上更好证书,手动通过群晖 web 页面进行替换。
本着能不动手就自动化的目标,查找了一些资料,加上实际测试,现在已经能通过 docker 来申请并且在群晖上自动部署证书。
前置条件
更新脚本如下
#!/bin/bash export DOMAIN='abc.com' docker run --rm \ -v "/volume2/docker/acme":/acme.sh \ -e Ali_Key="*" \ -e Ali_Secret="*" \ --net=host \ neilpang/acme.sh \ --issue --dns dns_ali --dnssleep 60 -d "${DOMAIN}" -d "*.${DOMAIN}" --server letsencrypt sleep 5 docker run --rm -v "/volume2/docker/acme":/acme.sh -e SYNO_Username="*" -e SYNO_Password="*" -e SYNO_Certificate="caupdate" -e SYNO_Scheme="http" -e SYNO_Create=1 --net=host neilpang/acme.sh --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm
其中
其他部分保持默认,保存后添加脚本执行权限,本地跑一遍测试下,没问题就可以添加到计划任务,定期运行。
1 4363fsdtrt 2023-11-11 15:29:31 +08:00 非常有用感谢,已成功运行 |
2 Subdue 2023-11-24 18:22:41 +08:00 ![]() 最新版本的 acme 有点点毛病,我的群辉 918 用不了,我倒回旧版 acme 镜像,重新做了调整 #!/bin/bash export ZEROSSL_EMAIL="**********************" export DOMAIN="**********************" export SYNO_USERNAME="**********************" export SYNO_PASSWORD="**********************" export DNS="dns_cf" export CF_KEY="**********************" export CF_EMAIL="**********************" echo "${SYNO_PASSWORD}" | sudo -S docker run --rm -v "/volume1/docker/acme":"/acme.sh" --net=host neilpang/acme.sh:3.0.6 --register-account -m "${ZEROSSL_EMAIL}" --server zerossl sleep 30 echo "${SYNO_PASSWORD}" | sudo -S docker run --rm -v "/volume1/docker/acme":"/acme.sh" -e CF_Key="${CF_KEY}" -e CF_Email="${CF_EMAIL}" --net=host neilpang/acme.sh:3.0.6 --issue --dns "${DNS}" --dnssleep 60 -d "${DOMAN}" -d "*.${DOMAIN}" --keylength 4096 --force sleep 600 echo "${SYNO_PASSWORD}" | sudo -S docker run --rm -v "/volume1/docker/acme":"/acme.sh" -e SYNO_Hostname="${DOMAIN}" -e SYNO_Port="5001" -e SYNO_Username="${SYNO_USERNAME}" -e SYNO_Password="${SYNO_PASSWORD}" -e SYNO_Scheme="https" -e SYNO_Certificate="caupdate" -e SYNO_Create=1 --net=host neilpang/acme.sh:3.0.6 --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm --insecure exit 0 |