本文介绍了开通Web应用防火墙(WAF)后,如何通过CNAME接入方式将您要防护的网站接入WAF进行防护。

前提条件

  • 已购买WAF实例,且当前实例支持接入的域名数量未超过限制。
    说明 支持接入的域名数量由WAF的实例规格和扩展域名包数量决定。更多信息,请参见扩展域名包
  • 如果您购买的是中国内地的WAF实例,您必须先对域名完成ICP备案,否则您的网站将无法接入WAF防护。接入WAF操作时,可能会报错并提示您完成备案。更多信息,请参见阿里云备案服务

背景信息

CNAME接入指您在WAF控制台添加要接入WAF防护的网站信息,并修改网站域名的DNS解析(设置CNAME解析记录),将网站的Web请求转发到WAF进行防护。该方式支持云上、云下的公网服务器地址接入。下文将会具体介绍CNAME接入的操作步骤。

说明 除了CNAME接入,您还可以选择透明接入。透明接入无需修改网站域名的DNS解析及源站配置,即可将网站的Web请求接入WAF进行防护。该方式是云上公网资产的最佳接入方式。相关操作,请参见透明接入

CNAME接入支持以下两种方式:

  • 自动添加网站:WAF自动读取当前阿里云账号关联的网站资产信息,您只需从一键接入列表选择需要接入的网站域名和协议类型,即可自动添加网站信息,包括网站域名、服务器地址、80和443标准协议端口,并自动修改域名的DNS解析。
    说明 自动修改域名解析需要执行网站接入的阿里云账号拥有操作云解析DNS的权限,否则自动修改域名解析会失败。这种情况下,您可以在自动添加网站后手动修改域名的DNS解析。
  • 手动添加网站:如果您要接入的网站不支持自动添加,您可以手动添加网站信息,例如网站域名、网络协议、服务器地址、服务器端口等。手动添加网站信息后,您需要手动修改网站域名的DNS解析,将网站的Web请求转发到WAF进行防护。

推荐您观看以下操作演示视频。该视频以CNAME接入为例,介绍了手动接入网站业务到WAF进行防护的完整操作。

自动添加网站

在添加网站时,如果您的阿里云账号下存在满足条件的网站域名,您可以直接从一键接入列表选择要添加的网站,完成自动添加网站。

支持自动添加的网站域名需要满足以下条件:
  • 如果您已完成资产识别授权,则支持自动添加的域名和资产识别结果一致。更多信息,请参见资产识别
  • 如果您未执行过资产识别授权,则支持自动添加的网站域名仅包含云解析DNS中配置生效的网站域名。

操作步骤

  1. 登录Web应用防火墙控制台
  2. 在顶部菜单栏,选择Web应用防火墙实例的资源组和地域(中国内地海外地区)。
  3. 在左侧导航栏,选择资产中心 > 网站接入
  4. 域名列表页签,单击网站接入
  5. 可选:添加域名页面,选择接入模式Cname接入
    如果当前页面已经自动选择了Cname接入,请跳过该步骤。添加域名(Cname接入)
  6. 一键接入页签,从域名列表选中要添加的域名和对应的协议类型,并单击立即自动添加网站
    说明 如果一键接入列表为空,表示没有满足条件的域名,建议您手动添加网站。更多信息,请参见添加域名配置向导
    域名一键接入

    如果域名使用HTTPS协议,则在选中https协议类型后,您必须先完成证书验证才可以添加网站。验证证书的操作步骤如下:

    1. 选中某个域名和https协议类型后,单击域名HTTPS证书列的验证证书
    2. 验证证书对话框,选择一种上传方式,并按照页面提示上传该域名绑定的证书。
      具体操作,请参见上传HTTPS证书
    3. 完成证书上传后,单击确定
      WAF会自动验证您上传的证书是否正确,可能结果如下:
      • 如果证书验证顺利通过,您可以单击立即自动添加网站
      • 如果证书验证失败,请根据错误提示(例如证书与密钥不匹配)重新验证证书,直到验证通过。

        更多信息,请参见证书与密钥不匹配问题排查

    WAF将自动添加网站信息,包括网站域名、服务器地址、80和443标准协议端口,并自动修改域名的DNS解析。
    说明 如果您需要添加80和443以外的端口,建议您在自动添加网站后,手动编辑域名进行调整。更多信息,请参见相关操作

    可能出现的异常结果及后续操作:

    • 域名添加成功,但需要手动接入DNS域名添加成功但需要手动接入DNS
      可能原因:执行添加域名的云账号不具有操作云解析DNS的权限、上传的HTTPS证书与网站域名不匹配。
      说明 网站支持https协议且证书验证通过的情况下,如果上传的证书与网站不匹配,则证书检测失败,不会自动修改DNS解析。这种情况下,您必须重新上传合法、正确的证书再手动修改DNS。更多信息,请参见上传HTTPS证书
      单击手动接入DNS,根据手动修改对话框的操作引导,完成DNS修改。更多信息,请参见修改域名DNS手动修改DNS
    • 当前已达到主域名个数限制达到主域名个数限制

      单击扩展域名包,查看购买扩展域名包的操作引导。根据需要购买扩展域名包后,再尝试添加域名。

    • 该域名未检测到ICP备案信息未检测到ICP备案信息

      如果您购买的是中国内地的WAF实例,您必须先对域名完成ICP备案,否则您的网站将无法接入WAF防护。建议您先完成ICP备案再尝试添加域名。更多信息,请参见ICP备案流程概述

手动添加网站

以下操作步骤介绍了使用CNAME接入模式手动添加网站的具体操作。如果您需要使用透明接入模式添加网站,请参见透明接入

  1. 登录Web应用防火墙控制台
  2. 在顶部菜单栏,选择Web应用防火墙实例的资源组和地域(中国内地海外地区)。
  3. 在左侧导航栏,选择资产中心 > 网站接入
  4. 域名列表页签,单击网站接入
  5. 可选:添加域名页面,选择接入模式Cname接入
    如果当前页面已经自动选择了Cname接入,请跳过该步骤。添加域名(Cname接入)
  6. 单击手动接入页签,并根据配置向导完成相关任务。
    1. 填写网站信息
      填写下表描述的网站信息,并单击下一步填写网站信息
      参数 说明
      域名 填写网站域名。域名需要满足以下要求:
      • 支持使用精确域名(例如,www.aliyun.com)和泛域名(例如,*.aliyun.com)格式。具体说明如下:
        • 使用泛域名后,WAF将自动匹配该泛域名对应的所有子域名(例如,*.aliyun.com能够匹配www.aliyun.comtest.aliyun.com等)。
          注意 泛域名不支持匹配对应的主域名(例如,*.aliyun.com不能够匹配aliyun.com)。如果您需要将主域名接入WAF进行防护,您需要单独添加对应的域名配置(例如,单独添加aliyun.com)。
        • 如果同时存在泛域名和精确域名配置,则精确域名的转发规则和防护策略优先生效。
      • 暂不支持添加.edu域名。如果您需要添加.edu域名,请提交工单联系售后技术支持。
      防护资源 选择要使用的防护资源类型。可选项:
      • 公共集群:默认选择。
      • 独享集群:只有使用独享版WAF实例时,才支持该选项。独享集群支持定制化业务需求。更多信息,请参见独享集群最佳实践
      • 混合云集群:只有使用混合云接入时,需要选择该选型。更多信息,请参见网站接入(混合云WAF)
      协议类型 选择网站使用的网络协议类型。可选项:
      • HTTP
      • HTTPS:如果网站支持HTTPS加密认证,请选择HTTPS协议并在添加域名后上传域名的证书和私钥文件。更多信息,请参见上传HTTPS证书
        选中HTTPS协议后,还支持修改以下设置:选中HTTPS
        • 开启HTTP2:如果您的网站支持HTTP 2.0协议,则您需要开启该设置。HTTP 2.0协议的端口与HTTPS协议端口保持一致,开启该设置后,您只需设置HTTPS端口即可。
          注意 只有企业版及以上规格的WAF实例支持开启HTTP2
        • 开启高级设置。具体包括:
          • 开启HTTPS的强制跳转:HTTPS强制跳转表示将客户端的HTTP请求强制转换为HTTPS请求,默认跳转到443端口。如果您需要强制客户端使用HTTPS请求访问网站以提高安全性,则可以开启该设置。
            注意
            • 只有在未选中HTTP协议时,支持开启该设置。
            • 请确保网站支持HTTPS业务再开启该设置。开启该设置后,部分浏览器将被强制设置为使用HTTPS请求访问网站。
          • 开启HTTP回源:HTTP回源表示WAF使用HTTP协议向源站转发回源请求,默认回源端口是80。开启HTTP回源可以在无需改动源站服务器的前提下,通过WAF实现HTTPS访问,帮助您降低网站的负载损耗。
            注意 如果您的网站不支持HTTPS回源,请务必开启该设置。
        • 启用回源SNI。回源SNI表示WAF转发客户端请求到源站服务器,在与源站进行TLS握手时,通过SNI扩展字段(Server Name Indicator extension)指定要访问的主机,并与该主机建立HTTPS连接。如果您的源站服务器有多个虚拟主机(对应不同域名),则您需要开启该设置。
          选中启用回源SNI后,您可以进一步设置SNI扩展字段的值。可选项:
          • 与实际请求host保持一致(默认):表示WAF回源请求中SNI扩展字段的值与请求头中Host字段的值保持一致。

            例如,您配置的网站域名为*.example.com,客户端实际请求了www.example.com(即Host字段值),则WAF回源请求中SNI扩展字段的值为www.example.com

          • 自定义:表示您自定义WAF回源请求中SNI扩展字段的值。

            一般情况无需自定义SNI,除非您的业务有特殊配置要求,希望WAF在回源请求中使用与实际请求Host不一致的SNI(即此处设置的自定义SNI)。

      服务器地址 设置网站的源站服务器地址,支持IP地址格式和域名(如CNAME)格式。完成接入后,WAF将过滤后的访问请求转发到此处设置的服务器地址。设置说明:
      • IP地址格式:填写源站的公网IP地址。需要为公网可达的IP地址。
        支持填写多个IP地址,每填写一个IP地址,按回车进行确认。最多支持添加20个源站IP。
        说明 如果设置了多个IP地址,WAF将在这些地址间自动进行健康检查和负载均衡。
        海外地区WAF实例仅支持配置IPv4地址。中国内地WAF实例支持同时配置IPv4和IPv6地址,或者只配置IPv4地址,暂不支持只配置IPv6地址。区别如下:
        • 同时配置IPv4和IPv6地址时,如果开启IPv4/IPv6协议跟随,则来自IPv6地址的请求将被转发到IPv6源站,来自IPv4地址的请求将被转发到IPv4源站。如果不开启IPv4/IPv6协议跟随,则不做区分,执行混合回源(即IPv4和IPv6请求都有可能回源到IPv4或IPv6源站)。
          注意 使用IPv6回源时,您必须确保网站接入列表中域名的IPv6状态为已开启。更多信息,请参见开启IPv6防护
        • 只配置IPv4地址时,IPv4和IPv6请求都将通过IPv4回源,即WAF将请求转发到您设置的IPv4源站地址。
        填写服务器IP地址的说明:
        • 如果源站在阿里云,一般填写ECS的公网IP地址。
        • 当ECS前面有SLB时,则填写SLB的公网IP地址。
        • 当源站在阿里云外的IDC机房或者其他云服务商时,建议您PING域名查询域名的公网IP地址,再填写域名的公网IP地址。
      • 域名(如CNAME)格式:填写服务器回源域名,例如,对象存储OSS的CNAME等。

        使用域名格式时,仅支持IPv4回源(暂不支持IPv6回源),即WAF只会将客户端请求转发到回源域名解析出来的IPv4地址(WAF不解析回源域名的IPv6地址)。

        注意
        • 服务器回源域名不应和要防护的网站域名相同。
        • 如果您的源站服务器地址为OSS域名,则完成网站接入后,您必须前往OSS控制台中为该OSS域名绑定自定义域名。具体操作,请参见绑定自定义域名
      服务器端口 添加网站使用的转发服务端口。

      WAF通过此处添加的端口为网站提供流量的接入与转发服务,网站域名的业务流量只通过已添加的服务端口进行转发。对于未添加的端口,WAF不会转发任何该端口的访问请求流量到源站服务器,因此这些端口的启用不会对源站服务器造成任何安全威胁。

      注意 网站信息中设置的协议类型服务器端口必须是源站服务器提供Web业务的协议和端口,不支持端口转换。例如,源站服务器提供Web服务的是80端口HTTP协议,域名配置也必须是一致的,设置其他端口则无法正常转发。
      默认端口:
      • HTTP 80:选中HTTP协议后默认设置。
      • HTTPS 443:选中HTTPS协议后默认设置。
        说明 HTTP 2.0协议的端口与HTTPS协议的端口保持一致。

      自定义端口:在HTTP端口输入框、HTTPS端口输入框输入端口并按回车进行添加。单击查看可选范围可以查询所有支持使用的端口。

      自定义端口
      说明
      • WAF旗舰版和独享版实例最多支持接入50个不同的服务器端口(包含80、8080、443、8443端口在内);企业版和高级版实例最多支持接入10个服务器端口(包含80、8080、443、8443端口在内)。
      • 关于公共集群支持的详细端口列表,请参见WAF支持的端口
      • 如果您要接入WAF独享集群,则自定义端口仅支持从独享设置页面中设置的服务器端口范围中选择。更多信息,请参见设置独享集群
      负载均衡算法 设置了多个源站服务器地址时,选择多源站服务器间的负载均衡算法。可选项:
      • IP hash(默认):将某个IP的请求定向到同一个源站服务器。
        说明 使用IP hash时,如果源站服务器的IP地址不够分散,可能会出现负载不均的情况。
      • 轮询:将所有请求轮流分配给源站服务器。
      • Least time:通过智能DNS解析能力和升级后的Least-time回源算法,保证业务流量从接入防护节点到转发回源站服务器整个链路的时延最短。
        说明 Least time仅在开通智能负载均衡后支持使用。更多信息,请参见智能负载均衡

      设置生效后,WAF将根据设置的负载均衡算法向多个源站IP分发回源请求,实现负载均衡。

      WAF前是否有七层代理(高防/CDN等) 选择网站业务在接入WAF前是否开启了其他七层代理服务(例如,DDoS高防、CDN等)。可选项:
      • :表示WAF收到的业务请求来自发起请求的客户端。WAF直接取与WAF建立连接的IP(来自REMOTE_ADDR字段)作为客户端IP。
      • :表示WAF收到的业务请求来自其他七层代理服务转发,而非直接来自发起请求的客户端。为了保证WAF可以获取真实的客户端IP进行安全分析,您需要进一步设置客户端IP判定方式

        WAF默认读取请求Header字段X-Forwarded-For(XFF)中的第一个IP地址作为客户端IP。

        客户端IP判定方式

        如果您的网站业务已通过其他代理服务的设置,规定将客户端源IP放置在某个自定义的Header字段(例如,X-Client-IP、X-Real-IP),则您需要选择取指定Header字段中的第一个IP作为客户端源IP,避免XFF伪造,并在指定Header字段框中输入对应的Header字段。

        说明 推荐您在业务中使用自定义Header存放客户端IP,并在WAF中配置对应Header字段。该方式可以避免攻击者伪造XFF字段,躲避WAF的检测规则,提高业务的安全性。

        支持输入多个Header字段。每输入完一个Header字段,需要按英文逗号(,)确认。设置了多个Header时,WAF将按顺序尝试读取客户端IP。如果第一个Header不存在,则读取第二个,以此类推。如果所有指定Header都不存在,则读取XFF中第一个IP地址作为客户端IP。

      启用流量标记

      设置是否开启WAF流量标记功能。

      如果您需要对经过WAF的请求进行标记(用以区分没有经过WAF的请求,便于后端服务统计分析),则可以开启该功能,并设置一个自定义的HTTP头部标记字段,包含Header字段名称Header字段值

      启用流量标记

      例如,您可以使用ALIWAF-TAG: Yes标记经过WAF的请求,其中,ALIWAF-TAG为字段名称,Yes为字段值。

      注意 请不要填写标准的HTTP头部字段(例如User-agent等),否则会导致标准头部字段内容被自定义的字段值覆盖。
    2. 修改DNS解析
      根据页面提示修改域名的DNS解析,将网站域名解析到WAF进行防护,完成后单击下一步。更多信息,请参见修改域名DNS
    3. 添加完成
      根据页面提示设置放行WAF回源IP段,完成后单击完成,返回网站列表,返回网站接入页面。更多信息,请参见放行WAF回源IP段

后续步骤

完成域名接入流程后,网站访问流量将经过WAF保护,您还可以完善网站防护配置,更好地防护网站安全。

WAF包含多种防护检测模块,帮助网站应对不同类型的安全威胁,其中规则防护引擎CC安全防护模块默认开启,分别用于防御常见的Web应用攻击(例如SQL注入、XSS跨站、Webshell上传等)和CC攻击,其他防护模块需要您手动开启并配置具体防护规则。更多信息,请参见网站防护配置概述

上传HTTPS证书

如果您添加的网站信息的协议类型中包含HTTPS,您必须在Web应用防火墙控制台上传与该网站域名关联的HTTPS证书,且证书必须正确、有效,才能保证WAF正常防护网站的HTTPS协议访问请求。

上传HTTPS证书支持以下方式:
  • 手动上传证书:您需要提前准备好网站的证书文件和私钥文件。
    需要准备的证书相关内容如下:
    • *.crt(公钥文件)或*.pem(证书文件)
    • *.key(私钥文件)
  • 选择已有证书:您可以直接从阿里云SSL证书服务已有证书中选择与域名关联的证书。

操作步骤

  1. 登录Web应用防火墙控制台
  2. 在顶部菜单栏,选择Web应用防火墙实例的资源组和地域(中国内地海外地区)。
  3. 在左侧导航栏,选择资产中心 > 网站接入
  4. 域名列表中定位到要操作的域名,单击源站信息列下的上传图标图标。
    说明 只有在添加域名时选择了HTTPS协议类型,源站信息列下才会出现上传图标图标。
    HTTPS协议状态
  5. 上传证书(或更新证书)对话框,选择一种上传方式上传HTTPS证书。
    说明 如果您已经上传过证书,则显示更新证书对话框。更新证书对话框中的配置内容和上传证书对话框一致。
    • 手动上传:填写证书名称,并将与域名关联的证书文件和私钥文件的文本内容分别复制粘贴到证书文件私钥文件手动上传
      关于证书文件的说明如下:
      • 如果证书是PEM、CER、CRT格式,您可以使用文本编辑器直接打开证书文件并复制其中的文本内容。
      • 如果证书是除PEM、CER、CRT外的其他格式,例如PFX、P7B等,您需要将证书文件转换成PEM格式后,才可以使用文本编辑器打开并复制其中的文本内容。 关于证书格式的转换方法,请参见HTTPS证书转换成PEM格式
      • 如果域名关联了多个证书文件,例如存在证书链,您需要将证书文件中的文本内容拼接合并后粘贴到证书文件
    • 选择已有证书:从证书列表选择要上传的证书。选择已有证书

      证书列表罗列了SSL证书服务中已签发的证书,您可以从列表中选择与当前域名关联的证书。单击云盾-证书服务,可以跳转到SSL证书管理控制台管理证书。

    • 申请新证书:单击立即申请,跳转到SSL证书申请页面为域名快速申请证书。申请新证书

      按照页面提示为域名配置证书后,已配置证书将默认上传到Web应用防火墙。

      说明 快速申请证书仅支持申请收费型DV证书。如果您需要申请其他类型的证书,请前往SSL证书购买页面进行操作。更多信息,请参见选择购买方式
  6. 单击确定

相关操作

成功添加域名后,您可以在网站接入页面的域名列表中查看已接入的域名并根据需要执行以下操作:网站接入
  • 上传HTTPS证书:如果网站支持HTTPS协议,请务必确保在WAF上传正确的证书和私钥,保证正常防护HTTPS业务流量。您可以在源站信息列下单击上传上传域名的HTTPS证书和私钥。

    更多信息,请参见上传HTTPS证书

  • 开启IPv6防护:如果网站有IPv6协议业务流量需要防护,您可以在快捷操作列下为域名开启IPV6开关。

    更多信息,请参见开启IPv6防护

  • 开启日志服务:在快捷操作列下为域名开启日志服务后,WAF日志服务将采集网站的全量日志,支持用作查询分析、仪表盘展示、设置告警等功能。

    更多信息,请参见开启日志采集

    说明 日志服务是WAF提供的增值服务,必须开通后才能使用。更多信息,请参见开通WAF日志服务
  • 设置防护资源:在快捷操作列下单击防护资源后的设置防护资源,为域名设置防护资源。
    支持的防护资源类型包括:
    • 共享集群共享IP(默认)
    • 共享集群独享IP:关于独享IP的介绍,请参见域名独享资源包
    • 共享集群全局负载均衡防护:关于全局负载均衡的介绍,请参见智能负载均衡
    • 独享集群:关于独享集群的介绍,请参见设置独享集群
  • 查看攻击监控报表:单击攻击监控列下的查看报表,跳转到安全报表页面,查看域名的防护报表。更多信息,请参见WAF安全报表
  • 设置防护策略:单击操作列下的防护配置,跳转到网站防护页面,设置Web安全Bot管理访问控制/限流防护模块的防护策略。更多信息,请参见网站防护配置概述
  • 编辑域名:单击操作列下的编辑,修改网站信息,例如,协议类型、服务器地址、服务器端口等。不支持修改域名。
  • 删除域名:单击操作列下的删除,删除域名。
    警告 在删除域名前,请将域名DNS解析回服务器源站IP。否则,在删除域名后,域名的流量将无法正常转发。

相关问题

请参见常见问题中的网站接入配置问题