群晖

群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

波比AI · 5月2日 · 2025年本文共1782个字 · 预计阅读6分钟6次已读

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

一、阿里云子账号授权

登录阿里云,在RAM访问控制-身份管理-用户-创建用户
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

创建完成,添加权限
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

然后点进新创建的用户,创建AccessKey
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书
会得到一个AcessKey和AccessKey Secret,复制出来,一会要用

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

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

群晖现在docker改名为Container Manager了。打开Container Manager,在注册表里搜索acme.sh
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

下载完成后,在映像里找到neilpang/acme.sh,运行
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

创建容器
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

容器高级设置,填好映射地址,红框部分为默认,不要改动。红框前面的路径就是我们刚开始新建的文件夹。
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

添加环境变量。我没有开启群晖登录两步验证。如果开启了两步验证,需要繁琐一些,可以为acme.sh专门新建一个账号,在此不展开了。
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

Ali_Key : 填入第一步获取的 AccessKey

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

SYNO_Username : 登录群晖的用户名

SYNO_Password : 登录群晖的密码

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

SYNO_Create:填域名

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

更改网络为host,添加命令daemonlaoxiongb2c
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

点击下一步,运行容器。

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

三、创建脚本文件

在群晖用文本编辑器,创建一个新文本,粘贴如下代码,修改 ‘你的域名’ 。如果你也是阿里云,那么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即可

# 某laoxiongb2c些域名服务商的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 文件夹下,然后右键属性,复制好路径位置,一会要用。
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

四、获取证书

首先确认群晖的ssh端口是打开的,然后运行终端,连接群晖。并提升账号权限为root
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

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

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

群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

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

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

群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

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

群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

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

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

打开群晖控制面板-任务计划-新增,账号选root
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

我选了每月执行一次
群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

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

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

群晖 Docker系列 —— 安装 acme.sh,实现自动更新部署SSL证书

然后确定,就完工了。

[Total: 0 Average: 0]
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!