1. 背景说明
在多服务器部署场景下,我们希望为域名申请 HTTPS 证书,并让多台服务器都可以使用。常用的证书来源是 Let's Encrypt,它免费、自动化,并支持多种验证方式。
2. 证书申请原理
Let's Encrypt 证书申请的核心步骤:
- 验证域名所有权:必须证明你对域名拥有控制权。
- 域名解析到服务器:某些验证方式依赖域名解析到指定服务器。
3. 验证方式
3.1 HTTP-01 验证
- 原理:在域名对应的服务器上放置特定文件,由 Let's Encrypt 访问验证。
- 条件 :
- 域名必须已解析到申请证书的服务器 IP。
- 服务器需开放 80/443 端口。
- 适用场景:单服务器、简单 Web 服务。
- 注意事项 :
- 多服务器部署时,每台服务器都需单独申请证书。
- 如果 DNS 未解析到该服务器,验证会失败。
3.2 DNS-01 验证
- 原理:在域名 DNS 上添加指定 TXT 记录,由 Let's Encrypt 验证。
- 条件 :
- 只需能修改域名 DNS 记录即可。
- 不依赖域名解析到哪台服务器。
- 适用场景:多服务器、负载均衡、CDN、GTM 等场景。
- 优势 :
- 一次验证成功,可在多台服务器共享同一证书。
- 不受服务器 IP 或流量调度策略影响。
4. 多服务器 HTTPS 配置建议
4.1 如果使用 HTTP-01
- 每台服务器独立申请证书,需:
- 对应域名解析到该服务器。
- 服务器开放 80/443 端口。
- 不适合多 IP、多节点场景。
4.2 如果使用 DNS-01(推荐)
- 只需能在 DNS 添加 TXT 记录即可,无需解析到服务器。
- 可以申请一次证书,然后在多台服务器上共享。
- 非常适合:
- 多 IP、多服务器部署
- 使用 CDN 或全局流量管理(GTM)
5. 注意事项
- HTTP-01 :
- 必须域名解析到申请服务器;
- 每台服务器都需要独立证书,管理成本高。
- DNS-01 :
- 无需解析到服务器,管理更方便;
- 支持证书在多服务器间共享。
- HTTPS 证书部署 :
- 每台服务器都要安装证书文件;
- 若使用负载均衡器,可在前端统一终止 HTTPS,再转发 HTTP 到后端。
6. 总结
| 验证方式 | 是否必须先解析 DNS | 适用场景 | 优缺点 |
|---|---|---|---|
| HTTP-01 | ✅ 是 | 单服务器、简单 Web | 优点:简单,缺点:多服务器管理复杂 |
| DNS-01 | ❌ 否 | 多服务器、CDN、GTM | 优点:统一管理、灵活;缺点:需要修改 DNS |
💡 推荐 :多服务器、负载均衡或 CDN 场景使用 DNS-01 验证,申请一次证书即可在所有服务器共享,管理成本最低。