本文列举了Web应用防火墙(Web Application Firewall,简称WAF)3.0版本接入可能遇见的问题。
概览
- 接入前能力与配置咨询 
- 接入过程中可能遇到的问题 
- 接入后可能遇到的问题 
WAF中的源站IP与回源IP有什么区别?
- WAF的回源IP WAF的回源IP是指WAF在将经过防护处理的正常流量转发到源站服务器时所使用的IP地址段。这些IP地址是由阿里云分配的,用于标识WAF作为代理服务器向源站发起请求的来源。 - 回源IP段通常是一个固定的IP地址范围。 
- 在源站服务器看来,所有来自客户端的请求都会被WAF拦截并转发,而真实的客户端IP会被记录在HTTP头部字段(如 - X-Forwarded-For或自定义Header)中。
 
- 源站IP 源站IP是指实际承载业务的后端服务器的公网IP地址或域名解析出的IP地址。它是用户访问网站时最终接收请求并返回响应的目标地址。 - 源站IP可以是单个IP地址,也可以是多个IP地址(支持负载均衡)。 
- 源站IP是用户网站的真实服务地址,可能部署在阿里云ECS、SLB、OSS或其他云服务商上。 
 
同一个域名能不能同时使用云产品接入和CNAME接入?
不推荐。每个域名只能使用云产品接入或CNAME接入两种模式之一,重复接入会导致转发冲突防护失效。如果您已通过CNAME接入开启WAF防护的域名,需要切换为云产品接入,您必须先删除该域名的CNAME接入配置,然后在云产品接入模式下重新接入该域名。
WAF能够保护在一个域名下的多个源站IP吗?
可以,一个WAF域名配置中最多支持配置20个源站IP地址。
WAF是否支持健康检查?
WAF默认启用健康检查。WAF会对所有源站IP进行接入状态检测,如果某个源站IP没有响应,WAF会将访问请求转发至其他源站IP。
源站IP无法响应时,WAF将为该源站IP自动设置一个静默时间。静默时间结束后,新的访问请求可能仍然会被转发至该源站IP。
WAF的独享IP是否能够防御DDoS攻击?
独享IP,可避免当一个域名遭受大流量DDoS攻击,导致其他接入的域名也无法访问的情况。更多信息请参见独享IP的价值。
WAF能和CDN或DDoS高防一起接入吗?
WAF完全兼容CDN和DDoS高防服务。WAF与DDoS高防或CDN一起接入时,只要将WAF提供的CNAME地址配置为DDoS高防或CDN的源站即可。这样就可以实现流量在经过DDoS高防或CDN之后,被转发到WAF,再通过WAF最终转发至源站,从而对源站进行全面的安全防护。更多信息,请参见通过联合部署DDoS高防和WAF提升网站防护能力、部署WAF和CDN为开启内容加速的域名提供WAF防御。
WAF是否支持跨账号使用CDN+高防+WAF的架构?
支持,您可以跨账号使用CDN、高防、WAF产品组合成抵御DDoS攻击和Web应用攻击的安全架构。
WAF如何保证上传证书及密钥的安全性?是否会解密HTTPS流量并记录访问请求的内容?
阿里云Web应用防火墙在防护HTTPS业务时,需要您上传对应的SSL证书及密钥,用于解密HTTPS流量并检测流量中的攻击特征。我们使用了专用的证书服务器(Key Server)来存储和管理密钥。Key Server依托于阿里云密钥管理系统KMS(Key Management Service),能够保护证书和密钥的数据安全性、完整性和可用性,符合监管和等保合规要求。关于KMS的详细介绍,请参见什么是密钥管理服务。
WAF使用您上传的SSL证书及密钥解密HTTPS业务流量,只用于实时检测。我们只会记录包含攻击特征(payload)的部分请求内容,用于攻击报表展示、数据统计等,不会在您未授权的情况下,记录全量的请求或响应内容。
阿里云Web应用防火墙已通过ISO 9001、ISO 20000、ISO 22301、ISO 27001、ISO 27017、ISO 27018、ISO 27701、ISO 29151、BS 10012、CSA STAR、等保三级、SOC 1/2/3、C5、HK金融、OSPAR、PCI DSS等多项国际权威认证,且作为标准的阿里云云产品,在云平台层面具备与阿里云同等水平的安全合规资质。详细内容,请参见阿里云信任中心。
网站已接入WAF防护,为什么在域名列表中查询不到?
您的网站备案信息可能已经失效,导致域名不符合接入要求,已被WAF自动清除。您需要为该域名完成ICP备案,并重新将网站接入WAF防护。关于阿里云ICP备案的更多信息,请参见ICP备案流程。
您在将网站接入中国内地WAF实例(包括包年包月实例和按量计费实例)防护前,必须保证域名备案信息的有效性。为符合相关法律法规要求,中国内地WAF实例会定期清除备案失效的域名。关于相关法律法规,请参见未备案不得提供非经营性互联网信息服务。
WAF如何通过自定义Header获取客户端源IP和记录客户端IP?
自定义Header获取客户端源IP:如果网站业务在WAF前有其他七层代理服务(例如,DDoS高防、CDN等),为了避免攻击者伪造XFF字段,躲避WAF的检测规则,提高业务的安全性,可在业务中使用自定义Header存放客户端IP,将客户端源IP放置在某个自定义的Header字段(例如,X-Client-IP、X-Real-IP),并在WAF中配置对应Header字段,WAF获取指定Header字段的值作为客户端源IP。如果设置多个Header字段,WAF将按顺序尝试读取客户端IP。
自定义Header记录客户端IP:在添加网站到WAF防护时,通过开启流量标记,使WAF在客户端请求的自定义Header字段中写入客户端IP,后端服务器可以从WAF回源请求的指定Header字段中获取客户端IP,适用于后端服务器需要从指定的自定义Header中获取客户端IP进行业务分析的场景。
WAF是否支持接入四层TCP协议?
WAF支持为四层CLB(TCP)与ECS端口监听的HTTP与HTTPS协议流量开启WAF防护,不支持转发防护其他非HTTP与HTTPS协议的端口流量。
WAF作为Web应用防火墙,主要针对Web流量提供防护,即HTTP、HTTPS流量。因此,当四层CLB(TCP)或ECS端口监听的流量为Web流量时,可通过WAF实现转发防护;若四层云产品实例上承载的是其他应用层协议流量(如FTP、SMTP等),则WAF无法转发此类流量。
如何批量导出已CNAME接入的域名信息列表?
您可以通过调用获取WAF实例详情API的方式获取您的WAF实例ID,然后调用查询CNAME接入列表API,查询CNAME接入的所有域名信息列表。
CNAME接入时,域名(如CNAME)类型的源站会如何被WAF负载均衡?
CNAME接入方式下,当您的源站有多个服务器地址,可以选择不同的负载均衡算法,使WAF将回源请求转发到对应的服务器,实现负载均衡。
当服务器地址选择域名(如CNAME)时,如果解析此域名返回了多个IP地址,WAF会将客户端请求以负载均衡的形式转发到解析出的多个IP地址;如果填写了多个域名,WAF会展开所有的解析结果并进行负载均衡。
但如果只填写了一个域名且每次解析域名时仅返回一个IP地址,则WAF不会进行负载均衡,只会向唯一的解析结果回源。
同一个域名解析指向了多个云产品实例,该如何接入?
使用云产品接入:需要同时接入这些云产品实例(例如CLB实例的服务端口),实现WAF对这几个实例同时引流。
使用CNAME接入:CNAME接入此域名后,所有云产品实例都将受到WAF默认防护策略的防护。
多个域名解析指向了同一个云产品实例,该如何接入?
使用云产品接入:您接入此云产品实例后,实例上的所有域名都将受到WAF默认防护策略的防护。但如果您希望单独为这些域名配置不同的防护规则,则需要手动将域名添加为防护对象,详细信息,请参见手动添加防护对象。
使用CNAME接入:逐一接入多个域名。
CNAME接入支持接入哪些域名后缀?
WAF3.0支持接入大部分域名后缀,包括中文域名后缀,具体支持的中文后缀列表请参见iana.org。
WAF3.0支持的域名后缀多于WAF2.0,若您发现某域名在WAF2.0不支持接入,建议升级至WAF3.0。
WAF是否支持HTTPS双向认证?
CNAME接入和透明接入暂不支持,使用WAF3.0服务化接入方案可以支持HTTPS双向认证,目前支持服务化接入的云产品包括ALB、MSE、FC、SAE,可以在WAF控制台云产品接入一栏中配置接入。
WAF是否支持Websocket、HTTP 2.0或SPDY协议?
WAF支持WebSocket协议。包年包月企业版及以上和按量付费版本支持监听HTTP 2.0协议。暂不支持SPDY协议。
为避免攻击者通过HTTP 2.0明文走私来绕过WAF,您可以通过创建自定义规则,拦截Header名称为Upgrade,且值为h2c的请求。具体操作,请参见设置自定义规则防御特定请求。
HTTP 2.0业务接入WAF防护是否会对源站有影响?
有影响。HTTP 2.0业务接入WAF防护表示WAF可以处理客户端的HTTP 2.0请求,而WAF目前仅支持以HTTP 1.0/1.1协议转发回源请求,即WAF与源站间暂不支持HTTP 2.0。因此,如果您将HTTP 2.0业务接入WAF防护,则源站的HTTP 2.0特性将会受到影响,例如,源站HTTP 2.0的多路复用特性可能失效,造成源站业务带宽上升。

WAF是否支持接入采用NTLM协议认证的网站?
不支持。如果网站使用NTLM协议认证,经WAF转发的访问请求可能无法通过源站服务器的NTLM认证,客户端将反复出现认证提示。建议您使用其他方式进行网站认证。
WAF的QPS限制规格是针对整个WAF实例汇总的QPS,还是配置的单个域名的QPS上限?
WAF的QPS限制规格针对整个WAF实例。
例如,您在WAF实例上配置防护了3个域名,则这3个域名累加的QPS不能超过规定上限。如果超过已购买的WAF实例的QPS限制,实例可能会进入沙箱。实际QPS超过规格或进入沙箱时,将不再保证产品遵循服务等级协议(Service Level Agreement,简称“ SLA”)。
如何查看WAF回源IP段与WAF提供的CNAME?
可以在接入列表页的下图位置找到WAF的回源IP段以及WAF为每个接入域名提供的CNAME地址。
接入配置页面找不到需要接入的CLB实例、NLB实例或ECS实例的排查方法
| 可能原因 | 相关操作 | 
| 要接入的CLB实例、NLB实例或ECS实例不满足限制条件 | |
| 要接入的CLB实例未添加对应监听 | |
| WAF未同步CLB、NLB或ECS实例 | 同步资产的具体步骤请参见手动同步资产。 | 
添加HTTPS引流端口时,显示CLB证书不全,该如何处理?
问题现象
添加HTTPS引流端口时,WAF会对该端口配置的证书进行来源校验。添加端口后出现以下提示:端口号为XXX的CLB证书不全,请到CLB控制台重新选择来源是SSL证书服务的证书。
可能原因
- 配置的证书不是通过阿里云数字证书管理服务(原 SSL 证书)购买的,且未上传到阿里云数字证书管理服务(原 SSL 证书)。 
- CLB实例配置该HTTPS端口监听的证书通过CLB控制台上传,然而,这种上传方式导致证书信息无法自动同步到数字证书管理服务(原 SSL 证书管理)。由于 WAF(Web 应用防火墙)仅从数字证书管理服务获取证书信息,这就造成了 WAF 无法获取到完整的证书内容,进而出现证书不全的提示。 
- 曾上传到数字证书管理服务的证书被手动删除,当前数字证书管理服务(原 SSL 证书)中没有您的证书。 
解决方案
- 将您的证书上传到数字证书管理服务(原 SSL 证书)。具体操作,请参见上传SSL证书。 
- 在CLB控制台创建证书,并选择证书来源为阿里云签发证书。具体操作,请参见选择阿里云签发证书。 
- 在CLB控制台,选择已上传的服务器证书。具体操作,请参见步骤二:配置SSL证书。 
WAF中的源站IP填写ECS公网IP还是内网IP?
公网IP。WAF通过公网进行回源,不支持直接填写内网IP。
云产品接入时添加多个扩展证书时失败原因?
可能原因是某个证书无效。在添加多个扩展证书时,请确保您选择的每一个证书都是有效的,如果存在过期的证书会导致添加失败。
使用云产品接入方式接入WAF后,是否需要再配置防护对象?
默认情况下,云产品接入WAF后,WAF会自动生成一个防护对象,无需额外配置。但如果您有多个域名解析指向了同一云产品实例,并希望为这些域名单独配置防护规则,则需要手动将域名添加为防护对象,具体操作,请参见手动添加防护对象。
防护对象添加完成后,在配置防护规则时选择生效对象为相应的域名,即可实现对多域名的精细化防护。
CNAME接入时,HTTP回源功能注意事项
HTTP回源表示WAF使用HTTP协议向源站转发回源请求,默认回源端口是80。开启该功能后,无论客户端访问WAF的端口是80或443,默认使用HTTP协议和80端口回源。如果您源站的80端口无实际业务,开启此功能会导致网站访问异常。
如果源站的80端口无实际业务,且配置了源站80端口的重定向访问,如返回301状态码跳转到443端口,会导致客户端访问一直重定向,提示ERR_TOO_MANY_REDIRECTS。
云产品接入CLB实例时报错InvalidTLS的原因?
云产品接入CLB实例时出现报错:Waf.Pullin.InvalidTLS(无效TLS),可能是由于该CLB实例为性能共享型实例。WAF不支持获取性能共享型实例的TLS配置信息,因此需将实例变更为性能保障型后,才支持云产品接入。更多信息,请参见CLB实例规格。
源站服务器公网IP暴露,攻击者直接攻击源站公网IP绕过WAF怎么办?
方式一:CNAME接入方式下,配置源站服务器仅放行WAF回源IP段,确保仅有WAF能与源站服务器建立通信。具体操作请参见放行WAF回源IP段。
方式二:使用云产品接入。
接入WAF后返回502状态码的多种场景
问题现象
接入WAF后访问后端服务,返回502状态码;查阅日志中出现状态码为502的请求。
问题原因与解决方案
情况一:CNAME接入方式下返回502
情况二:7层CLB开启云产品接入出现偶发5XX
情况三:URI 超长导致偶发502
情况四:WAF回源多个四层CLB出现偶发502
情况五:Linux内核参数问题导致请求返回502
接入WAF后文件上传失败
可能由于文件上传超过2GB的最大限制,目前WAF最大支持2GB的文件上传,当请求body超过2GB时,WAF会返回413状态码,可以根据返回状态码来判断是否达到了文件传输大小上限。
证书即将过期如何更新?
不同的接入方式更新方式不同:
- 如果是CNAME接入,请参见更新域名绑定的证书。 
- 如果是云产品接入ECS实例,请参见更新ECS引流端口绑定的证书。 
- 如果是云产品接入CLB实例,请参见更新CLB引流端口绑定的证书。 
- 如果是云产品接入NLB实例,请参见更新NLB引流端口绑定的证书。 
- 如果是云产品接入ALB实例,不需要在WAF控制台更新,只需在数字证书管理服务(原 SSL 证书)控制台部署证书到ALB实例。具体操作,请参见部署SSL证书到阿里云产品。 
云产品接入后,源站可以获取客户端的真实IP吗?
可以。WAF会向云产品实例直接提供真实的客户端IP。
扫描接入WAF的域名时报告弱加密套件,如何配置TLS协议版本与加密套件以满足安全要求?
为确保接入WAF的HTTPS网站符合安全与合规要求,建议配置高版本TLS协议及强加密套件。
高安全性的TLS协议与加密套件可能降低客户端兼容性,配置后可能导致使用旧版客户端(如IE浏览器)的用户无法访问网站。请在启用前充分评估客户端兼容性。
步骤一:确定配置位置
TLS协议版本与加密套件的配置入口取决于WAF的接入方式。
CNAME接入
在CNAME接入方式下,配置位置由扫描对象决定。请根据具体扫描对象,在对应位置进行配置。
- 扫描已接入域名:在CNAME接入页签,找到目标域名并单击操作列的编辑。在编辑域名页面的区域,展开高级配置,定位到TLS协议版本与HTTPS加密套件。  
- 扫描WAF的VIP:在CNAME接入页签,单击右侧的默认SSL/TLS设置,上传默认证书并配置TLS协议版本与HTTPS加密套件。   
云产品接入
在云产品接入方式下,对于ECS实例,四层CLB实例(监听协议为TCP)和NLB实例,请在WAF侧进行配置。对于其他云产品接入场景,配置操作需在其各自的产品控制台中完成。
- 云产品接入七层CLB实例时,不支持自定义加密套件,仅支持选择系统提供的TLS安全策略。 
- 云产品接入ALB实例时,如需自定义加密套件,需要手动创建TLS安全策略。更多信息,请参见TLS安全策略。 
- ECS、四层CLB(监听协议为TCP)、NLB:在云产品接入页签,定位到目标实例,单击  图标,选择目标端口操作列的编辑证书,在TLS协议版本与加密套件位置进行配置。 图标,选择目标端口操作列的编辑证书,在TLS协议版本与加密套件位置进行配置。  
- ALB:在ALB控制台,定位到目标实例后,在监听页签定位到目标监听,配置TLS安全策略。  
- 七层CLB(监听协议为HTTPS):在CLB控制台,定位到目标实例后,在监听页签定位到目标监听,单击管理证书,在弹出的界面配置TLS安全策略。   
- FC、MSE、APIG、SAE:在对应的产品控制台进行配置。 
步骤二:选择TLS协议版本
为避免旧版本TLS协议带来的安全风险,建议选择TLS1.2及以上版本。若网站支持TLS 1.3协议,请勾选开启支持TLS1.3。
步骤三:选择加密套件
为避免弱加密套件带来的安全风险,建议从如下列表中选择强加密套件。
| 强加密套件 | 弱加密套件 | 
| 
 | 
 | 
- 加密套件安全建议:ECDHE-RSA-AES128-SHA256 和 ECDHE-RSA-AES256-SHA384 加密套件使用 ECDHE 进行密钥交换,RSA 用于身份认证,采用 AES-CBC 加密模式。相比采用 AES-GCM 等认证加密模式的套件,其安全性和性能较低。部分安全扫描工具可能将其识别为弱加密套件,如出现该情况,请选择自定义加密套件并手动排除上述两个套件。 
- 加密套件命名标准:由于加密套件的命名标准不同,WAF采用OpenSSL格式显示加密套件,而部分扫描工具可能使用IANA标准。例如,OpenSSL中的ECDHE-ECDSA-AES256-SHA384对应IANA的TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384。如需快速查询对应关系,可访问 ciphersuite.info 或使用其他TLS查询工具。 
接入后日志upstream_addr字段值出现“-”的原因?
当日志字段upstream_addr出现-时,表示WAF未向源站回源,例如请求被WAF拦截的情况。建议检查其他如upstream_status、upstream_response_time等字段进一步分析。



