2026最新:使用 Docker + acme.sh 自动申请 Let's Encrypt 泛域名 SSL(阿里云 CDN 实战指南)
使用 Docker + acme.sh 自动申请泛域名 SSL(实战指南)
在多子域名场景(如 api.xxx.com、admin.xxx.com、www.xxx.com)下:
👉 一个泛域名证书,比多个单域名证书更高效、更易维护。
本文带你一步步完成:
- Docker 部署 acme.sh
- 申请 Let’s Encrypt 泛域名证书
- DNS 验证流程
- 阿里云 CDN 配置 HTTPS
一、部署 acme.sh 容器
1. docker-compose.yml
services:
acme:
image: neilpang/acme.sh
container_name: acme
restart: always
command: daemon
volumes:
- ./certs:/acme.sh
2. 启动容器
docker compose up -d
二、申请 SSL 证书
1. 设置 CA 并申请证书
docker exec acme --set-default-ca --server letsencrypt
docker exec acme --issue \
--dns \
-d webyt.com.cn \
-d "*.webyt.com.cn" \
--server letsencrypt
⚠️ 注意:泛域名证书 必须使用 DNS 验证(HTTP 验证不支持)
2. 添加 DNS TXT 解析
执行命令后会输出类似:
_acme-challenge.webyt.com.cn
TXT: xxxxxxxxxxxxx
👉 到你的 DNS 服务商(如阿里云)添加 TXT 记录
3. 验证 DNS 是否生效
nslookup -type=TXT _acme-challenge.webyt.com.cn
4. 完成证书签发
docker exec acme --renew \
-d webyt.com.cn \
--server letsencrypt \
--yes-I-know-dns-manual-mode-enough-go-ahead-please
三、证书文件说明
证书会保存在:
./certs/
关键文件:
| 文件名 | 说明 |
|---|---|
| fullchain.cer | 公钥证书 |
| webyt.com.cn.key | 私钥 |
四、部署到阿里云 CDN
在 CDN 控制台中配置:
公钥(Certificate)
fullchain.cer
私钥(Private Key)
webyt.com.cn.key
五、为什么推荐泛域名证书?
✅ 优势
- 一个证书覆盖所有子域名
- 减少证书管理成本
- 避免遗漏子域名 HTTPS
- 更适合 SaaS / 多系统架构
❗ 注意
- 必须使用 DNS 验证
- 自动化建议使用 DNS API(后续可升级)
六、进阶建议(强烈推荐)
如果你在做:
👉 国际物流官网 / 获客系统 / 多站点 SEO
建议:
- 国内站:阿里云 CDN(提升访问速度)
- 海外站:Cloudflare(提升 Google SEO)
- 统一使用泛域名证书
七、总结
这套方案的核心价值:
👉 一次配置,长期稳定使用
适用于:
- API 服务
- 官网系统
- 多子域 SaaS
- 国际业务站点
最后一句话
👉 SSL 不是成本,是你系统的“基础设施”。
如果你还在手动管理多个证书,那这篇文章可以帮你节省大量时间。