Files
higress/plugins/wasm-go/extensions/sni-misdirect

功能说明

sni-misdirect 用于缓解 HTTPS 场景下 TLS SNI 与 HTTP :authorityHost 不一致带来的错误路由或错误证书问题。当两者不匹配且不符合通配 SNI 规则时,网关返回 421 Misdirected Request

匹配规则

插件在以下条件全部满足时进行校验:

  • 协议为 HTTP/2 或 HTTP/3跳过 HTTP/1.x
  • 请求为 HTTPS
  • Content-Type 不是 application/grpcgRPC 跳过)

校验逻辑:

  1. 若 SNI 与 :authority(去掉端口后)完全相同 → 放行
  2. 若 SNI 不以 *. 开头且与 Host 不一致 → 返回 421
  3. 若 SNI 为 *.example.com 形式,则 Host 须包含 example.com 后缀,否则返回 421

配置字段

本插件无配置项

配置示例

# 无额外配置字段

说明

  • 适用于多证书、多租户或通配证书场景,避免客户端 SNI 与 HTTP Host 不一致时误打到错误虚拟主机。
  • 仅作请求头/连接属性检查,不修改上游路由目标。