云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

群晖Docker应用(二)——部署 acme.sh 自动申请Let's Encrypt证书

jxf315 2025-04-24 01:52:33 教程文章 53 ℃

acme.sh 是一款方便,强大的 Let's Encrypt 域名证书申请续签程序.支持一键脚本和 docker 部署.支持 http 和 DNS 两种域名验证方式,其中包括手动,自动 DNS 及 DNS alias 模式方便各种环境和需求.可同时申请合并多张单域名,泛域名证书,并自动续签证书和部署到项目.

安装前准备

  1. DNS API
  2. 群晖Docker环境


群晖 docker 部署

群晖NAS的 docker 容器部署,支持以下两种方式:

  • docker executable 执行模式
  • docker daemon 守护模式

docker executable 执行模式

配置 DNS API

手动创建account.conf文件.本文以/docker/acme目录为例.

根据上文获取的 API 格式,复制粘贴并保存.

实践过程中遇到自动生成的 AUTO_UPGRADE='1' 参数可能会导致 API 格式错误.建议手动加入.

export DP_Id="xxxxx"
export DP_Key="xxxxxxxxxxxxxxxxxxxx"
AUTO_UPGRADE='1'

下载镜像启动容器

群晖 docker 注册表中搜索acme.sh并下载latest最新版.

映像中启动容器

配置容器

高级设置


添加文件夹以挂载配置文件和证书输出目录,选择本文示例的
docker/acme,装载路径为/acme.sh.

装载路径由镜像作者规定,不能修改,请直接复制粘贴.

网络
勾选使用与 Docker Host 相同的网络

环境
执行命令中添加以下申请证书命令.申请泛域名证书123.com是你的域名

--issue --dns dns_dp -d 123.com -d *.123.com

DNS 参数

请根据域名 DNS 服务商来修改命令,其中dns_dp腾讯云DNSPod.cn 服务商,自行根据官方dnsapi修改.例如:dns_ali阿里云,dns_cfCLoudflare.

多域名证书

acme.sh 可以同时申请多个域名.例如拥有域名aaa.com,bbb.com,ccc.com,只需要在命令后加上-d 空格 域名即可.

--issue --server letsencrypt --dns dns_dp -d aaa.com -d *.aaa.com -d bbb.com -d *.bbb.com -d ccc.com -d *.ccc.com

多域名申请证书会将多个证书合并为一个证书,并存放到以第一个域名命名的文件夹内,证书信息仅显示第一个域名的信息.

运行容器

配置完执行命令后应用启动容器

选择容器详情

查看日志显示开始申请证书(右下角刷新日志)

申请成功(右下角刷新日志)

docker executable 执行模式 完成申请后会自动停止容器

证书生成到docker/acme目录下

到期续签

容器在申请成功之后会自动停止,请保留不要删除.待证书快到期时,只需点击启动即可再次申请.真正实现一键申请证书的需求.

docker daemon 守护模式

群晖NAS的 DSM 中以 docker daemon 守护模式 创建 docker 容器,容器将常驻运行.通过容器终端机来执行证书申请命令.此方案适合经常申请证书的场景,无需多次配置容器参数.

docker daemon 守护模式docker executable 执行模式 的 DNS API 配置和前期部署流程一样,依照上文执行到 环境 步骤.

环境

执行命令填写daemon以常驻运行.

配置完执行命令后应用启动容器,选择容器详情.

选择终端机,点击新增右侧的箭头,通过命令启动.

输入sh确定

选择sh的终端,先执行更新命令.

acme.sh --upgrade --auto-upgrade

输入命令申请证书.本文以域名123.com为例,申请泛域名证书.

acme.sh --issue --server letsencrypt --dns dns_dp -d 123.com -d *.123.com

开始申请证书

申请成功

DNS 参数及多域名证书

DNS 参数及多域名证书参照上文,注意守护模式的命令要多加一个acme.sh.

acme.sh --issue --server letsencrypt --dns dns_dp -d aaa.com -d *.aaa.com -d bbb.com -d *.bbb.com -d ccc.com -d *.ccc.com

到期续签

docker daemon 守护模式acme.sh容器会根据申请记录,每60天自动更新证书.



最近发表
标签列表