参考内容及环境
参考1:如何使用docker离线包?从此告别头疼的docker pull
参考2:群辉Docker利用acme.sh实现证书申请和自动续签
参考3:群晖7.2用docker安装acme.sh,实现自动更新部署SSL证书,参考了安装acme步骤
主机:暴风+蜗牛组合黑群辉,DSM 6.1.7-15284
网络:普通无科学
准备:域名(阿里云购买),阿里云平台的Ali_Key,Ali_Secret
离线部署acme
根据参考1中的离线获取acme镜像
注册github账号,fork悟空大佬的项目:https://github.com/wukongdaily/DockerTarBuilder

根据下图获取镜像文件,Action-平台类型-Run workflow,输入镜像的名字(要准确),Run

下载镜像文件到本地,解压出来得到tar格式文件
导入镜像
Docker-映像-新增-从文件添加
图形化安装acme,见参考3
安装完成,启动acme.sh。
注意:参考3中是利用Let's encrypt,这里是用ZeroSSL。
注册ZeroSSL
https://app.zerossl.com/注册时下一步需要科学上网才能完成。
获取阿里云Ali_Key,Ali_Secret
登录阿里云官网,点击头像-AccessKey管理,建议用主账号获取Key,避免权限问题。记录下来,Key和Secret只出现一次。
进入acme.sh容器,进入/root/.acme.sh目录
docker exec -it acme.sh /bin/sh ##acme.sh 是容器的名字
cd /root/.acme.sh
注册ZeroSSL,填写注册的邮箱
--register-account -m xxx@xxx.com ## xxx@xxx.com注册ZeroSSL的邮箱
增加阿里key变量,填写自己的上面获取到的
echo "export Ali_Key="L2222222222222d"" >> /etc/profile
echo "export Ali_Secret="G5555555555555555555p"" >> /etc/profile && source /etc/profile
申请证书,填写自己的一级或二级域名上面阿里已经解析过的域名
--issue --dns dns_ali -d test.aaaa.top ## test.aaaa.top你的域名
等待提示成功,证书生成后存放在/volume1/docker/acme/目录下,test.aaaa.top_ecc文件夹里。
下载并导入证书
下载证书到本地,然后控制面板-安全性-证书,新增,导入证书。
确认证书存放位置和替换位置
进入目录/usr/syno/etc/certificate/_archive/,通过dir,根据修改时间判断存放最新证书的文件夹,后面更新时要用到。
cd /usr/syno/etc/certificate/_archive/
dir
根据修改时间得出,k5jD1Z是存放最新证书的文件夹,记录下,后面更新证书要使用。

继续查看目录下的文件名,替换文件时要用到。

自动更新脚本
echo "
echo"
!/bin/sh
docker start acme.sh
sleep 10
rm -rf /volume1/docker/acme/test.aaaa.top_ecc/* #替换自己的域名和地址
docker exec acme.sh /root/.acme.sh/./acme.sh --issue --dns dns_ali -d test.aaaa.top #替换自己的域名和地址
sleep 15
cp -r /volume1/docker/acme/test.aaaa.top_ecc/test.aaaa.top.cer /usr/syno/etc/certificate/system/default/cert.pem #替换自己的域名和文件夹
cp -r /volume1/docker/acme/test.aaaa.top_ecc/test.aaaa.top.key /usr/syno/etc/certificate/system/default/privkey.pem #替换自己的域名和文件夹
cp -r /volume1/docker/acme/test.aaaa.top_ecc/fullchain.cer /usr/syno/etc/certificate/system/default/fullchain.pem #替换自己的域名和文件夹
#
cp -r /volume1/docker/acme/test.aaaa.top_ecc/test.aaaa.top.cer /usr/syno/etc/certificate/_archive/k5jD1Z/cert.pem #替换自己的域名和文件夹
cp -r /volume1/docker/acme/test.aaaa.top_ecc/test.aaaa.top.key /usr/syno/etc/certificate/_archive/k5jD1Z/privkey.pem #替换自己的域名和文件夹
cp -r /volume1/docker/acme/test.aaaa.top_ecc/fullchain.cer /usr/syno/etc/certificate/_archive/k5jD1Z/fullchain.pem #替换自己的域名和文件夹
#
/volume1/docker/acme/cer_update.sh
添加计划任务
进入群辉控制面板-任务计划-计划任务
常规 名称:自定义 用户:root
计划 日期:每月 时间:机器在开机状态
任务设置 执行任务 bash /volume1/docker/acme/cer_update.sh >> /volume1/docker/acme/log.txt 2>&1
其他命令
注销域名
docker exec acme.sh /root/.acme.sh/./acme.sh --revoke -d test.aaaa.top
删除账户
docker exec acme.sh /root/.acme.sh/./acme.sh --deactivate-account
增加其他域名,从域名开始