260911.Let’s Encrypt.https泛域名-通配符证书.90天多域名证书.部署指引
Created At : 2026-09-11 10:10
先确认 CA 是谁:( ZeroSSL / Let’s Encrypt) 执行:
以及:
1 cat ~/.acme.sh/account.conf | grep -E 'CA|DEFAULT_ACME'
如果你看到:
1 https://acme.zerossl.com/v2/DV90
那你当前使用的是 ZeroSSL 。
如果是:
1 https://acme-v02.api.letsencrypt.org/directory
就是 Let’s Encrypt 。
我更建议你直接切换 Let’s Encrypt 测试 如果你现在用的是 ZeroSSL,可以直接:
1 acme.sh --set-default-ca --server letsencrypt
然后重新申请。
你的 DNS 验证方式继续使用原来的方式即可,例如:
1 2 3 4 acme.sh --issue \ -d iot-agent.cn \ --ecc \ --dns <你的DNS插件>
如果你原来使用的是 DNS API,例如阿里云、Cloudflare、腾讯云等,把 <你的DNS插件> 换回你原来的参数。
如果你想强制重新申请 可以加:
成功日志 1 2 3 4 5 6 [Wed Sep 30 12:51:03 PM CST 2026] Your cert is in: /home/ubuntu/.acme.sh/iot-agent.cn_ecc/iot-agent.cn.cer [Wed Sep 30 12:51:03 PM CST 2026] Your cert key is in: /home/ubuntu/.acme.sh/iot-agent.cn_ecc/iot-agent.cn.key [Wed Sep 30 12:51:03 PM CST 2026] The intermediate CA cert is in: /home/ubuntu/.acme.sh/iot-agent.cn_ecc/ca.cer [Wed Sep 30 12:51:03 PM CST 2026] And the full-chain cert is in: /home/ubuntu/.acme.sh/iot-agent.cn_ecc/fullchain.cer [Wed Sep 30 12:51:04 PM CST 2026] ARI suggestedWindow: 2026-11-28T06:36:34Z to 2026-11-30T01:47:24Z [Wed Sep 30 12:51:04 PM CST 2026] Next renewal time picked from ARI window: 2026-11-29T14:38:28Z
部署流程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Ubuntu ↓ acme.sh ↓ 腾讯云 DNS API ↓ 自动创建 _acme-challenge TXT ↓ Let's Encrypt 验证 ↓ 生成泛域名证书 ↓ Nginx ↓ 以后自动续期
acme.sh部署 1 2 3 4 curl https://get.acme.sh | sh -s email=2226311013@qq.com 并创建 一个 shell 的 alias, 例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh
90天证书脚本
推荐机构:Let’s Encrypt 是免费通配符证书最广泛使用的签发机构。ZeroSSL 也提供90天免费通配符证书。
通配符同样仅支持 DNS-01验证
要申请 Let’s Encrypt 90天泛域名证书(*.example.com),必须使用 DNS-01 验证,HTTP验证无法签发泛域名证书
Let’s Encrypt
获取密钥
前往腾讯云控制台的 访问管理 (CAM) 页面,
创建并获取你的 SecretId 和 SecretKey 。
1 2 3 腾讯云 DNSPod配置: export Tencent_SecretId="xxxx" export Tencent_SecretKey="xxxx"
1. 申请泛域名证书 假设域名:
申请泛域名证书: 1 2 3 4 acme.sh --force --issue \ -d iot-agent.cn \ --dns dns_tencent \ --keylength ec-256
执行后会自动:
1 2 3 4 5 6 7 8 新增 TXT: _acme-challenge.iot-agent.cn 等待解析生效 向 Let's Encrypt 发起验证 签发证书
成功后会看到:
1 2 Your cert is in: ~/.acme.sh/iot-agent.cn_ecc/
申请泛域名证书:-d "*.iot-agent.cn" 1 2 3 4 acme.sh --force --issue \ -d '*.iot-agent.cn' \ --dns dns_tencent \ --keylength ec-256
2. 查看证书
例如:
1 2 Main_Domain KeyLength iot-agent.cn ec-256
3. 安装到 Nginx 创建目录:
安装证书:
1 2 3 4 5 6 acme.sh --install-cert \ -d iot-agent.cn \ --ecc \ --key-file /etc/nginx/ssl/private.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "systemctl reload nginx"
说明:
1 2 private.key 私钥 fullchain.cer 完整证书链
以后续期成功会自动覆盖并执行:
4. Nginx 配置 1 2 3 4 5 6 7 8 9 10 11 12 server { listen 443 ssl http2; server_name *.iot-agent.cn iot-agent.cn; ssl_certificate /etc/nginx/ssl/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/private.key; location / { proxy_pass http://127.0.0.1:8080; } }
检查:
重载:
5. 测试续期 Let’s Encrypt 证书有效期 90 天,acme.sh 默认会自动续期。
手动测试:
1 2 3 4 acme.sh --renew \ -d iot-agent.cn \ --ecc \ --force
查看定时任务:
一般会看到:
1 0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"
6. 工业项目服务器推荐命令 如果是你的工业数据平台正式环境,推荐直接使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 export Tencent_SecretId="你的SecretId" export Tencent_SecretKey="你的SecretKey" acme.sh --set-default-ca --server letsencrypt acme.sh --issue \ -d iot-agent.cn \ -d '*.iot-agent.cn' \ --dns dns_tencent \ --keylength ec-256 acme.sh --install-cert \ -d iot-agent.cn \ --ecc \ --key-file /etc/nginx/ssl/private.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "systemctl reload nginx"
这样即可实现:
泛域名证书(*.iot-agent.cn)
90天自动续期
腾讯云 DNS 自动验证
Nginx 自动更新证书
ECDSA P-256(性能更好,适合高并发 Web/API 服务)