文档中心
SSL璇佷功瀛愬煙鍚嶄笉濂戒娇锛?涓父瑙佸師鍥犲強瑙e喅鏂规璇﹁В
时间 : 2025-09-27 16:48:23浏览量 : 2

作为网络安全从业人员,我经常遇到用户反馈:“明明主域名能用HTTPS,为什么子域名突然不好使了?” 这背后往往和SSL证书的配置或管理疏漏有关。今天就用大白话+实际案例,帮你彻底搞懂问题根源和解决方法。
一、什么是子域名的SSL证书?
SSL证书就像网站的“身份证”,告诉浏览器:“这个连接是安全的”。而子域名(如 `blog.example.com`)和主域名(`example.com`)可以是同一张证书覆盖(通配符证书 `*.example.com`),也可以是单独申请的独立证书。
常见误区举例:
- 用户买了单域名证书(仅支持 `example.com`),却以为能自动保护 `shop.example.com`。
- 通配符证书(`*.example.com`)不包含主域名本身,需额外添加。
二、为什么子域名的SSL会“不好使”?5大原因+案例
1. 证书未覆盖子域名
- 现象:访问 `api.example.com` 时浏览器报错“不安全”。
- 原因排查:用工具(如 [SSL Labs](https://www.ssllabs.com/))检查证书详情,发现只包含 `example.com`,没有 `api.example.com`。
- 解决方案:
- 重新购买通配符证书(`*.example.com`)。
- 或单独为子域名申请新证书。
2. DNS解析未生效或错误
- 案例:用户迁移服务器后,忘记更新子域名的DNS记录,导致流量仍指向旧IP,而旧服务器已卸载证书。
- 检查方法:用 `dig api.example.com` 或在线工具(如 [DNS Checker](https://dnschecker.org/))确认解析是否正确。
3. 服务器配置遗漏子域名
- 经典错误场景:Nginx/Apache配置中只绑定了主域名的SSL,漏了子域名:
```nginx
错误示例:只监听主域名
server {
listen 443 ssl;
server_name example.com;
缺少 api.example.com
ssl_certificate /path/to/cert.pem;
...
}
```
- 修正方案:在配置中添加子域名或使用通配符监听。
4. CDN或负载均衡器未同步证书
- 真实案例:企业使用Cloudflare加速,但忘记在CDN面板上传子域名的SSL证书,导致回源加密失败。
- 解决步骤:在CDN服务商处更新证书(如Cloudflare的“SSL/TLS → Edge Certificates”)。
5. HSTS策略冲突
- 现象:主域名启用了HSTS(强制HTTPS),但子域名的HTTPS配置错误,导致浏览器直接拒绝连接。
- 验证方法: Chrome访问 `chrome://net-internals/
hsts` ,查询是否被强制HTTPS。
三、如何快速排查问题?3步走!
1. 查证书记录:
```bash
openssl s_client -connect sub.example.com:443 | openssl x509 -text
```
看输出中是否有你的子域名(Subject Alternative Name字段)。
2. 测试网络链路:
- DNS解析是否正常?(`ping sub.example.com`)
- 端口是否开放?(`telnet sub.example.com 443`)
3. 检查服务器日志:
- Nginx/Apache的error.log中可能有SSL握手失败的记录。
四、最佳实践建议
1. **推荐通配符证书: 适合多个动态子域名的场景(如SaaS平台)。但注意它不保护二级以上子域(如 `dev.api.example.com`)。
2. *自动化续期*: Let’s Encrypt免费证书需每90天更新,用Certbot工具可避免过期失效:
certbot renew --cert-name *.example.com
```
3. *监控告警*: SSL到期前15天邮件通知你。(可用UptimeRobot等工具)
一句话: “子域名HTTPS失效”多半是“人”的问题——漏配置、忘同步、欠维护。按本文步骤排查后你会发现…原来如此简单!
TAG:ssl证书子域名不好使,域名开启ssl证书无法访问,ssl证书绑定域名还是ip,配置ssl后打不开域名了