2026最新:使用 Docker + acme.sh 自动申请 Let's Encrypt 泛域名 SSL(阿里云 CDN 实战指南)


使用 Docker + acme.sh 自动申请泛域名 SSL(实战指南)

在多子域名场景(如 api.xxx.comadmin.xxx.comwww.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 不是成本,是你系统的“基础设施”。

如果你还在手动管理多个证书,那这篇文章可以帮你节省大量时间。

微信订阅号二维码