stille 发表于 2020-3-13 10:13:49

群晖 docker 部署 acme.sh 自动申请域名证书,不用命令行

本帖最后由 stille 于 2020-3-13 10:20 编辑

欢迎访问我的博客 www.ioiox.com

前言上文已经介绍了 acme.sh 的详细实践使用教程,网上关于群晖NAS上使用acme.sh来自动化申请和部署证书的相关文章已经有很多,由于群晖特殊的环境,只能通过 SSH 登陆到 Linux 环境使用命令来完成操作,对于新手可能并不友好.本文将详细介绍在群晖NAS的DSM 管理界面利用 docker 部署 acme.sh 服务来申请证书.
由于全自动化部署的整个流程不确定因素过多,所以本文仅针对申请步骤实现真正的一键申请.为保险起见还是手动导入证书.

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

本文为Stille原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

部署简介整个部署流程非常简单,具体为以下三个步骤:
[*]准备 DNS API
[*]安装 acme.sh
[*]执行申请命令

本文以最常规的 DNS API 验证模式为例,其他方式请参考官方Wiki.

准备 DNS API通过使用域名服务商提供的 API 密钥,让acme.sh自动创建域名验证记录以申请域名证书. acme.sh 支持全球各种域名服务商的 API ,本文将以阿里云,腾讯云,Cloudflare为例.更多 DNS API 支持,请查看:官方dnsapi
阿里云
推荐使用子账户,并赋予子账户 DNS 权限,以确保安全性.
登陆阿里云控制台 - 访问控制 RAM - 用户管理
新建用户并勾选为该用户自动生成AccessKey
https://static.ioiox.com/usr/uploads/2020/03/3045514288.jpg
复制保存好生成的AccessKey信息
https://static.ioiox.com/usr/uploads/2020/03/3855719536.jpg
授权该用户,搜索DNS,并将AliyunDNSFullAccess移动至右侧确定.
https://static.ioiox.com/usr/uploads/2020/03/1939658513.jpg
根据官方dnsapi获取阿里云的API格式为:export Ali_Key="LTAI4Fd8J9qs4fxxxxxxxxxx"export Ali_Secret="Xp3Z7NDOW0CJcPLKoUwqxxxxxxxxxx"
腾讯云腾讯云的域名由dnspod.cn管理,登陆管理控制台,右上角选择密钥管理,创建密钥并复制保存好生成的ID和Token.
https://static.ioiox.com/usr/uploads/2020/03/3218835751.jpg
根据官方dnsapi获取DNSPod.cn的API格式为:export DP_Id="124xxx"export DP_Key="54ddaa41245837600ce713xxxxxxxxxx"
Cloudflare
Cloudflare 的 API 分为 global api key 全局 API 和创建 new api token ,网上各种教程都是使用全局 API .为确保安全,推荐创建 new api token 来使用.
登陆 Cloudflare 点域名进入,右侧有如下图 API 信息.首先复制保存Account ID.然后点击Get your API token.
https://static.ioiox.com/usr/uploads/2020/03/2595721593.jpg
点击Create Token创建新 API Token,具体参考如下:
其中 Zone Resources 选择你的 Cloudflare 账户邮箱
https://static.ioiox.com/usr/uploads/2020/03/2218702194.jpg
复制保存生成的API Token
https://static.ioiox.com/usr/uploads/2020/03/1557903647.jpg
根据官方dnsapi获取CloudFlare的Using the new cloudflare api token格式为:export CF_Token="PfCA6tyLxxxxxxxx-sS6ANgqzuVexxxxxxx"
export CF_Account_ID="1fs48ec7e2063cb70hacc3xxxxxxxxxx"


群晖 docker 部署群晖NAS的 docker 容器部署,支持以下两种方式:
[*]docker executable 执行模式
[*]docker daemon 守护模式

docker executable 执行模式
群晖NAS的 DSM 中以 docker executable 执行模式 创建 docker 容器,会在创建时根据执行命令来申请证书,并在证书申请完成后停止容器.

配置 DNS API手动创建account.conf文件.本文以/docker/acme目录为例.
https://static.ioiox.com/usr/uploads/2020/03/1627379978.jpg
根据上文获取的 API 格式,复制粘贴并保存.
实践过程中遇到自动生成的 AUTO_UPGRADE='1' 参数可能会导致 API 格式错误.建议手动加入.
export DP_Id="xxxxx"
export DP_Key="xxxxxxxxxxxxxxxxxxxx"
AUTO_UPGRADE='1'https://static.ioiox.com/usr/uploads/2020/03/4278311209.jpg

下载镜像启动容器群晖 docker 注册表中搜索acme.sh并下载latest最新版.
https://static.ioiox.com/usr/uploads/2020/03/1535670460.jpg
映像中启动容器
https://static.ioiox.com/usr/uploads/2020/03/1411502802.jpg

配置容器高级设置
https://static.ioiox.com/usr/uploads/2020/03/3400209572.jpg

添加文件夹以挂载配置文件和证书输出目录,选择本文示例的docker/acme,装载路径为/acme.sh.
装载路径由镜像作者规定,不能修改,请直接复制粘贴.
https://static.ioiox.com/usr/uploads/2020/03/2407762448.jpg
网络
勾选使用与 Docker Host 相同的网络
https://static.ioiox.com/usr/uploads/2020/03/3849262329.jpg

**** Hidden Message *****

sun8023 发表于 2020-3-13 10:22:50

本帖最后由 sun8023 于 2020-3-13 10:24 编辑

感谢分享/////Let’s Encrypt支持吗

stille 发表于 2020-3-13 10:25:40

sun8023 发表于 2020-3-13 10:22
感谢分享/////Let’s Encrypt支持吗

就是let'encrypt

sun8023 发表于 2020-3-13 10:47:03

stille 发表于 2020-3-13 10:25
就是let'encrypt

好的,原来用命令的,老是到期不自动,好像是重复没设置对,试试这个

stille 发表于 2020-3-13 10:49:03

sun8023 发表于 2020-3-13 10:47
好的,原来用命令的,老是到期不自动,好像是重复没设置对,试试这个

那你试试 守护模式 吧
执行模式是单次的,也不会续签

cheong0hk 发表于 2020-3-13 11:09:16

谢谢分享

北境守护 发表于 2020-3-13 11:16:44

需要 80 443端口么?

sshalo 发表于 2020-3-13 11:28:54

谢谢楼主分享

sun8023 发表于 2020-3-13 14:07:40

不会自动导入群晖呀

wjq_xp 发表于 2020-3-13 20:40:16

能申请泛域名证书吗

hangaj 发表于 2020-3-13 21:58:29

感谢分享了,太牛了

zczc0417 发表于 2020-3-13 23:46:01

群晖 docker 部署 acme.sh

xxzj990 发表于 2020-3-14 13:59:55

谢谢分享,试试

HHH 发表于 2020-3-14 19:58:26

谢谢分享

gdzjy 发表于 2020-3-14 20:52:58

https://www.up4dev.com/2018/05/29/synology-ssl-wildcard-cert-update/
这个更好,自动导入。

xuecqcn 发表于 2020-3-14 21:13:00

好东西一定要支持

fzj2019 发表于 2020-3-15 06:39:53


感谢大佬分享!辛苦啦

lifuping 发表于 2020-3-15 09:04:56

感谢分享了,太牛了

lifuping 发表于 2020-3-15 09:07:05

感谢分享了,太牛了

kayy 发表于 2020-3-15 19:52:37

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 群晖 docker 部署 acme.sh 自动申请域名证书,不用命令行