跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Nginx 部署通配符证书:实现一个证书保护所有二级域名的最佳实践

通配符SSL证书(如.example.com)可统一保护所有二级域名,但不支持裸域名和三级域名;Nginx通过server_name .example.com单块配置即可匹配,需配合DNS-01自动化续期及TLS 1.2+安全加固。 用一个通配符证书(如 *.example.com )统一保护所有二级域名,是高效、可维护的 HTTPS 实施方式。关键不在于“能不能”,而在于“怎么配得稳、管得住、扩得开”。以下是从部署到长期运维的实用要点。 证书覆盖范围必须清晰认知 通配符证书只匹配**一级子域名**,这是硬性限制,不是配置问题: ✅ 可用:api.example.com、shop.example.com、test.example.com ❌ 不可用:dev.api.example.com(二级子域)、example.com(裸域名) 若需覆盖裸域名,申请时必须显式包含:
-d example.com -d *.example.com
;若需支持多级子域,得另配
*.api.example.com
或改用 SAN 证书补充。 Nginx 配置只需一个 server 块,无需为每个子域重复写 利用
server_name
的通配符匹配能力,避免配置爆炸:
server { listen 443 ssl; server_name *.example.com; # 自动匹配所有一级子域 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 其他 SSL 参数(协议、密钥交换、会话缓存等)统一设置 location / { proxy_pass http://backend; proxy_set_header Host $host; } }
注意:
server_name *.example.com
不会匹配
example.com
,裸域名需单独加一个
server
块或合并进同一块中用精确匹配。 Nginx 在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。 下载 证书更新与分发必须自动化,不能靠手动复制 Let’s Encrypt 的通配符证书只能通过 DNS-01 验证,续期无法全自动——但可通过钩子脚本闭环: 首次申请用
certbot certonly --manual --preferred-challenges dns
,手动添加 TXT 记录 续期时用
--manual-auth-hook
调用 DNS 更新脚本(如阿里云 API、Cloudflare CLI) 续期成功后,用
--deploy-hook
触发
rsync + nginx -s reload
,推送到所有 Nginx 节点 不推荐 NFS 或共享存储挂载证书目录——单点故障、权限难控、reload 时机不可靠。 安全与兼容性不能妥协 基础配置之外,这几项直接影响终端访问成功率和安全性: 确保
ssl_trusted_certificate
指向完整证书链(fullchain.pem),否则部分安卓/iOS 客户端握手失败 禁用 TLS 1.0/1.1,强制启用 TLS 1.2+ 和现代加密套件(如
ECDHE-ECDSA-AES128-GCM-SHA256
) 开启 OCSP Stapling,减少客户端证书状态查询延迟 私钥权限严格设为
600
,属主为
root
,Nginx 主进程以 root 启动才能读取 不复杂但容易忽略

相关文章