[玩法/技巧] 群晖 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 验证模式为例,其他方式请参考官方Wiki. 准备 DNS API通过使用域名服务商提供的 API 密钥,让acme.sh自动创建域名验证记录以申请域名证书. acme.sh 支持全球各种域名服务商的 API ,本文将以阿里云,腾讯云,Cloudflare为例.更多 DNS API 支持,请查看:官方dnsapi 阿里云 推荐使用子账户,并赋予子账户 DNS 权限,以确保安全性. 根据官方dnsapi获取阿里云的API格式为: export Ali_Key="LTAI4Fd8J9qs4fxxxxxxxxxx"export Ali_Secret="Xp3Z7NDOW0CJcPLKoUwqxxxxxxxxxx"腾讯云 根据官方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 来使用. 点击Create Token创建新 API Token,具体参考如下: 其中 Zone Resources 选择你的 Cloudflare 账户邮箱根据官方dnsapi获取CloudFlare的Using the new cloudflare api token格式为: export CF_Token="PfCA6tyLxxxxxxxx-sS6ANgqzuVexxxxxxx"export CF_Account_ID="1fs48ec7e2063cb70hacc3xxxxxxxxxx" 群晖 docker 部署 群晖NAS的 docker 容器部署,支持以下两种方式:
docker executable 执行模式 群晖NAS的 DSM 中以 docker executable 执行模式 创建 docker 容器,会在创建时根据执行命令来申请证书,并在证书申请完成后停止容器. 配置 DNS API 根据上文获取的 API 格式,复制粘贴并保存. 实践过程中遇到自动生成的 AUTO_UPGRADE='1' 参数可能会导致 API 格式错误.建议手动加入.export DP_Id="xxxxx" export DP_Key="xxxxxxxxxxxxxxxxxxxx" AUTO_UPGRADE='1' 下载镜像启动容器 配置容器 卷 装载路径由镜像作者规定,不能修改,请直接复制粘贴.添加文件夹以挂载配置文件和证书输出目录,选择本文示例的docker/acme,装载路径为/acme.sh. 游客,如果您要查看本帖隐藏内容请回复 |
|
sun8023 发表于 2020-3-13 10:22 就是let'encrypt |
stille 发表于 2020-3-13 10:25 好的,原来用命令的,老是到期不自动,好像是重复没设置对,试试这个 |
|