参考资料

  1. 推荐 ESA 边缘防护 + Nginx 兜底 的组合。
  2. “回源协议和端口”决定了 ESA 边缘节点向你的源站服务器发起请求时,用 HTTP 还是 HTTPS,以及连到哪个端口。
  3. _acme-challenge.madama.cnDNS 直接解析madama.cn.118555529491327488.dcv.aliyun-esa.com,申请失败
  4. 针对“流氓”爬虫,核心策略是 “拒绝礼貌,直接开火”。robots.txt 对它们形同虚设,必须在 Nginx 或 ESA 层面主动拦截。
  5. Zstd 相比 Gzip 和 Brotli,在性能上的突出表现确实是“速度与压缩率的平衡”
  6. OCSP Stapling 功能可实现由 ESA 预先缓存在线证书验证结果并下发给客户端,无需浏览器直接向 CA 站点查询证书状态,从而减少用户验证时间。
  7. HTTP/2 和 HTTP/3 是给访客用的,HTTP/2 回源是给源站用的
  8. “边缘清洗 + 源站隐身 + 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 报错,可以按以下思路排查:

  1. 抓包确认:检查客户端 TLS 握手中的 ServerName 是否与请求 URL 的域名一致。

  2. 检查白名单:确认相关域名是否已添加。

  3. 客户端优化:尽量确保客户端在发起请求时,TLS SNI 与 HTTP Host 保持一致,避免在同一 QUIC 连接上混用不同域名。

作者:王壹杰
时间:2026-09-28 11:16:32
来源:https://yun.ciilii.com/