在云环境中,Web 应用常见架构是:
用户 → CDN → WAF → CLB → ECS/Higress
本文详细解析 WAF 在网络拓扑中的位置、TLS 加解密流程、回源逻辑,以及自定义接入模式下的注意事项,结合阿里云官方推荐实践。
1.WAF 在网络拓扑中的位置
阿里云 WAF 提供两种主要接入模式:
1.自定义接入(CNAME 域名)
- 用户访问域名指向 WAF CNAME。
- WAF 可对 HTTP/HTTPS 请求做安全检测。
- 可手动选择回源协议(HTTP/HTTPS)。
2.云资产接入(阿里云推荐)
- 直接选择云资源(如 CLB、ECS、ALB)作为源站。
- WAF 自动沿用源站监听配置,不提供单独回源协议选择。
- 简化配置,兼容阿里云云产品。
2.CDN 与 WAF 的顺序
2.1 阿里云官方推荐顺序
用户 → CDN → WAF → 源站(CLB/ECS/Higress)
优点:
- CDN 缓存静态资源,减少 WAF 与源站压力。
- WAF 仅检测 CDN 回源流量(动态请求)。
适用场景:大部分互联网应用。
2.2 非推荐顺序
用户 → WAF → CDN → 源站
缺点:
- 所有流量都必须经过 WAF,包括静态资源,增加 CPU 负载。
- CDN 缓存效率可能降低。
适用场景:对静态资源也有严格安全需求,但成本高,不常用。
3.WAF + L4 CLB + Higress 架构解析
3.1 原始架构(无 WAF)
用户 → CLB (L4 TCP 443) → ECS → Higress (L7 HTTPS)
- CLB 是 L4,只做 TCP 转发,不解密 TLS。
- Higress 负责 TLS 解密 + L7 路由。
3.2 加入 WAF 后
用户 → WAF (L7 HTTPS) → CLB (L4 TCP 443) → ECS → Higress (L7 HTTPS)
- WAF 解密 TLS,做安全检测。
- 回源到 CLB 时,WAF 重新加密 TLS。
- CLB 仅做 TCP 透传,Higress 再解密。
4.TLS 加解密详细流程
5.云资产接入与自定义接入的回源差异
6.回源协议对性能和安全的影响
7.拓扑图示意
用户端(HTTPS/TLS1)│▼+----------+| WAF || L7 解密 |+----------+│(HTTPS/TLS2 回源)│▼+----------+| CLB || L4 TCP |+----------+│▼+----------+| Higress || L7 解密 |+----------+│▼应用服务后端
- TLS1:用户到 WAF
- TLS2:WAF 回源到 CLB → Higress
- CLB 仅透传 TLS2,不解密
8.总结与最佳实践
1.CDN + WAF + 源站顺序:
- 官方推荐:用户 → CDN → WAF → 源站
- 避免 WAF 处理全部流量,提升性能。
2.WAF 加入后 TLS 逻辑:
- 必须解密 TLS 才能做安全检测。
- 回源到 L4 CLB 时,仍然走 HTTPS,Higress 再解密。
3.云资产接入注意事项:
- WAF 回源协议自动跟随源站监听,不可手动更改。
- Higress 仅支持 HTTPS 时,云资产接入自动使用 HTTPS 回源。
4.性能与安全权衡:
- 双 TLS 增加 CPU 消耗,但保证端到端加密和安全防护完整性。
- HTTP 回源可提升性能,但仅在内网安全环境可信时使用。
💡 Tips
静态资源尽量由 CDN 缓存,减少 WAF 负载。
架构设计时明确 TLS 解密节点,避免重复证书配置。
云资产接入模式下配置简单,但对回源协议控制有限;自定义接入模式灵活,但需手动配置。
参考: https://help.aliyun.com/zh/waf/web-application-firewall-3-0/user-guide/overview-8?spm=a2c4g.11186623.help-menu-28515.d_3_2_0.7c8d5582hoEehh