Docker部署acme申请证书+自动续签

/ 1评 / 0 / 806阅            

参考内容及环境

参考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

《“Docker部署acme申请证书+自动续签”》 有 1 条评论

  1. 匿名说道:

    增加其他域名,从域名开始

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注