给 blog.example.com 启用 HTTPS,通常申请覆盖该完整主机名的证书就够了;只有需要维护大量同一级子域名时,才值得考虑通配符证书。选择的关键是证书覆盖范围、域名验证方式和续期自动化,而不是哪个证书名称听起来更高级。
先判断需要保护哪些主机名
| 证书包含的名称 | 覆盖范围示例 | 注意事项 |
|---|---|---|
blog.example.com |
该特定子域名 | 其他子域名不能仅凭此证书匹配 |
*.example.com |
blog.example.com、api.example.com |
通常不覆盖根域名 example.com 或更深层级 a.b.example.com |
example.com 与 *.example.com |
根域名及其一级子域名 | 两种名称需要都被列入证书 |

HTTP-01 与 DNS-01:为什么要分开选
Let’s Encrypt 的 HTTP-01 通过在网站 /.well-known/acme-challenge/ 路径放置验证内容证明控制权,默认需要公网可从 80 端口访问;它不适合用来签发通配符证书。DNS-01 要求在 DNS 增加指定 TXT 记录,可以为通配符域名验证,适合多子域名或无法开放 HTTP 验证路径的部署,但 DNS 供应商 API 凭证须妥善保存并限制权限。
普通子域名:Certbot 与 Nginx 的部署逻辑
以下只说明 Ubuntu 上已有域名解析、已安装 Nginx 与 Certbot 的操作思路。先备份当前 Nginx 配置,确保申请所需端口可达,避免同一域名在 DNS/CDN 上出现冲突。实际安装方式请按 Certbot 官方指南选择发行版适配的包或插件。
sudo nginx -t
sudo certbot --nginx -d blog.example.com
sudo nginx -t
sudo certbot renew --dry-run
命令中的域名须替换为自己已控制的主机名。申请成功不代表自动续期任务已正常调度,需确认系统中存在相应定时器或计划任务;renew --dry-run 是验证续期配置的演练,不能当作正式续期完成证明。
通配符:选择合适的 DNS 验证方式
如果要签发 *.example.com,请查看 Certbot 支持的 DNS 插件;插件是否存在、支持哪家 DNS、API 凭证权限和文件位置均应按其文档确认。手工 DNS-01 也可以完成所有权验证,但不配置自动化时续期容易被遗漏;不要将管理整个 DNS 区域的高权限 Token 放在公开脚本仓库中。
Nginx 上线检查与证书更换回退
Nginx 的 ssl_certificate 与 ssl_certificate_key 分别引用服务端证书链和私钥文件,证书必须覆盖请求的主机名。启用后用浏览器检查证书主体、有效期和完整链;如果使用 CDN,还要检查 CDN 到源站 TLS 的验证方式。切换配置前保留可恢复备份,修改后先 nginx -t 再重载,失败时恢复先前有效配置。
进一步可阅读本站 Nginx 反向代理部署。验证方法依据 Let’s Encrypt 挑战类型说明,证书文件字段依据 NGINX HTTPS 文档。




