群晖7.2用docker安装acme.sh,实现自动更新部署SSL证书

本文介绍了如何在阿里云RAM子账号授权后,利用ACME.sh在群晖上创建容器,配置环境变量,自动获取和更新SSL证书,实现定期的证书更新流程。
摘要由CSDN通过智能技术生成

最近发现SSL到期了,上去阿里云一看,免费证书有效期才3个月了,本来就1年一次觉得够烦了。干脆弄一下自动部署更新SSL证书吧(以阿里云为例)。

一、阿里云子账号授权

登录阿里云,在RAM访问控制-身份管理-用户-创建用户

创建完成,添加权限

然后点进新创建的用户,创建AccessKey

会得到一个AcessKey和AccessKey Secret,复制出来,一会要用

二、群晖创建acme.sh容器并配置环境

先去共享文件夹docker里建一个acme.sh的文件夹。

群晖现在docker改名为Container Manager了。打开Container Manager,在注册表里搜索acme.sh

下载完成后,在映像里找到neilpang/acme.sh,运行

创建容器

容器高级设置,填好映射地址,红框部分为默认,不要改动。红框前面的路径就是我们刚开始新建的文件夹。

添加环境变量。我没有开启群晖登录两步验证。如果开启了两步验证,需要繁琐一些,可以为acme.sh专门新建一个账号,在此不展开了。

Ali_Key : 填入第一步获取的 AccessKey

Ali_Secret : 填入第一步获取的 AccessKey Secret

SYNO_Username : 登录群晖的用户名

SYNO_Password : 登录群晖的密码

SYNO_Certificate :空字符串("")为替换默认证书

SYNO_Create:填域名

SYNO_Port : 填入群晖内网的端口号(我用的默认端口5000未修改)

更改网络为host,添加命令daemon

点击下一步,运行容器。

此时只是容器搭建好了,但是证书还没有获取,也没有部署,必须要一个脚本文件来启动它。

三、创建脚本文件

在群晖用文本编辑器,创建一个新文本,粘贴如下代码,修改 '你的域名' 。如果你也是阿里云,那么dns_ali就不用改,这里我们用的是letsencrypt

#!/bin/bash
 
# 域名
 
DOMAIN='你的域名'
 
# # DNS类型,dns_ali dns_dp dns_gd dns_aws dns_linode根据域名服务商而定,CloudFlare就是dns_cf
 
DNS=dns_ali
 
# DNS API 生效等待时间 值(单位:秒),一般120即可
 
# 某些域名服务商的API生效时间较大,需要将这个值加大(比如900)
 
DNS_SLEEP=120
 
# 证书服务商,letsencrypt
 
CERT_SERVER=letsencrypt
 
generateCrtCommand="acme.sh --force --log --issue --server ${CERT_SERVER} --dns ${DNS} --dnssleep ${DNS_SLEEP} -d "${DOMAIN}" -d "*.${DOMAIN}""
 
installCrtCommand="acme.sh --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm"
 
docker exec acme-sh $generateCrtCommand
 
docker exec acme-sh $installCrtCommand

然后保存,修改文件名为cert.sh.

将此脚本文件放到 /volume1/docker/acme.sh 文件夹下,然后右键属性,复制好路径位置,一会要用。

完成以上步骤之后,就可以来获取证书了。

四、获取证书

首先确认群晖的ssh端口是打开的,然后运行终端,连接群晖。并提升账号权限为root

然后执行脚本运行命令,路径就用刚才复制的脚本文件路径

root@JoeCloud:~# bash /volume1/docker/acme.sh/cert.sh

看到最后的Success,就是成功了。

然后我们可以在 /volume1/docker/acme.sh/ 文件夹下看到有个以我们域名命名的文件夹,里面就是新保存的证书。

然后去检查下证书是否更新,可以看到证书已经更新了,有效期也是3个月

这步成功之后,我们就可以去部署自动更新的脚本了

五、自动获取更新证书脚本

打开群晖控制面板-任务计划-新增,账号选root

我选了每月执行一次

然后任务设置-运行命令,粘贴如下代码,视情况做修改:

bash  /volume1/docker/acme.sh/cert.sh >> /volume1/docker/acme.sh/log.txt 2>&1

然后确定,就完工了。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
以下是群晖7.2安装docker并搭建青龙面板的步骤: 1. 打开群晖对应的管理网页,进入“套件中心”安装Docker。 2. 安装完成后,在Docker中搜索并下载青龙面板镜像。 3. 创建一个本地文件夹,用于挂载青龙面板的配置文件和数据。 4. 运行青龙面板容器,并将容器内的`/ql/config`和`/ql/db`目录分别挂载到步骤3中创建的本地文件夹中。 5. 访问青龙面板的Web界面,进行配置和操作。 具体步骤如下: 1. 打开群晖对应的管理网页,进入“套件中心”安装Docker。 2. 安装完成后,在Docker中搜索并下载青龙面板镜像。可以通过以下命令在Docker中拉取青龙面板镜像: ```shell docker pull whyour/qinglong:latest ``` 3. 创建一个本地文件夹,用于挂载青龙面板的配置文件和数据。可以通过以下命令创建一个名为`qinglong`的文件夹: ```shell mkdir ~/qinglong ``` 4. 运行青龙面板容器,并将容器内的`/ql/config`和`/ql/db`目录分别挂载到步骤3中创建的本地文件夹中。可以通过以下命令运行容器: ```shell docker run -dit \ -v ~/qinglong/config:/ql/config \ -v ~/qinglong/db:/ql/db \ -p 5700:5700 \ --name qinglong \ whyour/qinglong:latest ``` 解释一下上述命令中的参数: - `-dit`:以交互式和后台模式运行容器。 - `-v ~/qinglong/config:/ql/config`:将本地文件夹`~/qinglong/config`挂载到容器内的`/ql/config`目录。 - `-v ~/qinglong/db:/ql/db`:将本地文件夹`~/qinglong/db`挂载到容器内的`/ql/db`目录。 - `-p 5700:5700`:将容器内的5700端口映射到主机的5700端口,以便通过Web界面访问青龙面板。 - `--name qinglong`:将容器命名为`qinglong`。 - `whyour/qinglong:latest`:使用最新版本的青龙面板镜像。 5. 访问青龙面板的Web界面,进行配置和操作。在浏览器中输入`http://<你的群晖IP地址>:5700`,即可访问青龙面板的Web界面。在界面中进行配置和操作即可。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值