记录主机体验,分享建站经验RSS 订阅 ↗

二级域名 HTTPS 证书怎么申请:单域名、通配符与 Nginx 部署

更新于 2026-10-23

TLS 证书覆盖范围示意:单域名、通配符一级子域名以及额外的根域名名称

给 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 根域名及其一级子域名 两种名称需要都被列入证书

TLS 证书覆盖范围示意:单域名、通配符一级子域名以及额外的根域名名称

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 文档。