首页/安全/加密与证书速查/SNI 与默认站点不匹配
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条
证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

SNI 与默认站点不匹配

客户端(健康检查、旧库)未发送 SNI 时会命中 nginx 的 default_server,返回与目标域名不符的证书;分别带与不带 -servername 探测并对比证书主体即可定位。

加密与证书速查安全更新于 2026-10-12
定位方法同一 IP 两次探测:带 -servername 与不带,对比 subject
风险点探活脚本固定访问 IP 且不发 SNI,告警与真实用户不一致
配置建议显式声明 default_server 与占位证书,避免依赖配置顺序

对比探测

对比探测
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -subject

默认站点声明

默认站点声明
server {
    listen 443 ssl default_server;
    server_name _;
    ssl_certificate     /etc/nginx/ssl/default.crt;
    ssl_certificate_key /etc/nginx/ssl/default.key;
}
健康检查应携带正确的 ServerName,否则证书校验结果与用户侧不一致。

易错点

  • 多个 server 块都未标记 default_server,行为随配置顺序变化
  • 以未携带 SNI 的探测结果判断线上证书状态

数据来源与参考

  • RFC 6066 §3(Server Name Indication)
  • nginx 官方文档(listen default_server)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌