阿里云 ESA 的 SNI 白名单功能的核心机制
参考资料
- 推荐 ESA 边缘防护 + Nginx 兜底 的组合。
- “回源协议和端口”决定了 ESA 边缘节点向你的源站服务器发起请求时,用 HTTP 还是 HTTPS,以及连到哪个端口。
- _acme-challenge.madama.cnDNS 直接解析madama.cn.118555529491327488.dcv.aliyun-esa.com,申请失败
- 针对“流氓”爬虫,核心策略是 “拒绝礼貌,直接开火”。robots.txt 对它们形同虚设,必须在 Nginx 或 ESA 层面主动拦截。
- Zstd 相比 Gzip 和 Brotli,在性能上的突出表现确实是“速度与压缩率的平衡”
- OCSP Stapling 功能可实现由 ESA 预先缓存在线证书验证结果并下发给客户端,无需浏览器直接向 CA 站点查询证书状态,从而减少用户验证时间。
- HTTP/2 和 HTTP/3 是给访客用的,HTTP/2 回源是给源站用的
- “边缘清洗 + 源站隐身 + Nginx 兜底” 三层纵深
阿里云 ESA 的 SNI 白名单功能的核心机制
你的理解准确,这正是阿里云 ESA 的 SNI 白名单功能的核心机制。
功能原理
ESA 开启 SNI 白名单后,会强制校验 TLS 握手时的 SNI 与 HTTP 请求头中的 Host 是否一致。若两者不匹配且域名不在白名单内,请求将被直接拒绝。
主要用途
这个功能主要是为了防御 域前置(Domain Fronting)攻击。攻击者利用 SNI 与 Host 不一致的特性,将 SNI 设置为一个合法的、被允许的域名,但 Host 头却指向隐藏的真实目标,从而绕过网络限制或安全策略。SNI 白名单从底层阻断这种攻击路径。
配置注意事项
在 ESA 控制台开启并配置白名单时,有几点需要留意:
白名单格式:支持输入域名前缀(如
www),系统会自动补全为完整域名。不支持包含*的通配符。数量限制:最多可添加 50 个域名。
业务兼容性:开启前需确认业务中不存在合法的 SNI 与 Host 不一致场景(如自定义域名回源、代理转发等),否则正常请求会被拦截。建议先将相关域名加入白名单再开启。
HTTP/3 (H3) 场景:在 H3 协议下,由于 QUIC 多路复用,客户端可能在同一连接上发送多个不同域名的请求,更容易触发 SNI deny 错误。解决方案是将所有可能用到的域名(主域名、子域名等)都加入白名单。
如何排查 SNI deny 错误
如果遇到 SNI deny 报错,可以按以下思路排查:
抓包确认:检查客户端 TLS 握手中的 ServerName 是否与请求 URL 的域名一致。
检查白名单:确认相关域名是否已添加。
客户端优化:尽量确保客户端在发起请求时,TLS SNI 与 HTTP Host 保持一致,避免在同一 QUIC 连接上混用不同域名。
时间:2026-09-28 11:16:32
来源:https://yun.ciilii.com/
