调用CreateDomain添加域名配置信息,将您的域名接入WAF实例进行防护。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateDomain

要执行的操作。取值:CreateDomain

InstanceId String waf-cn-7pp26f1****

WAF实例的ID。

说明 您可以调用DescribeInstanceInfo查询当前WAF实例的ID。
Domain String www.example.com

要添加到WAF防护的域名。

IsAccessProduct Integer 0

域名在WAF前是否配置有七层代理(例如高防、CDN等),即客户端访问流量到WAF前是否有经过其他七层代理转发。取值:

  • 0:表示否。
  • 1:表示是。
AccessHeaderMode Integer 0

WAF获取客户端真实IP的方式。取值:

  • 0(默认):表示WAF读取请求头中X-Forwarded-For(XFF)字段的第一个值作为客户端IP。
  • 1:表示WAF读取请求头中由您设置的自定义字段值作为客户端IP。
说明 仅在IsAccessProduct取值为1(表示WAF前有其他七层代理服务)时,需要设置该参数。
AccessHeaders String ["X-Client-IP"]

设置用于获取客户端IP的自定义字段列表,使用["header1","header2",……]格式表示。

说明 仅在AccessHeaderMode取值为1(表示WAF读取请求头中由您设置的自定义字段值作为客户端IP)时,需要设置该参数。
LogHeaders String [{"k":"ALIWAF-TAG","v":"Yes"}]

域名的流量标记字段和值,用于标记经过WAF处理的流量。

该参数值的格式为[{"k":"_key_","v":"_value_"}]。其中,_key_表示所指定的自定义请求头部字段,_value_表示为该字段设定的值。

通过指定自定义请求头部字段和对应的值,当域名的访问流量经过WAF时,WAF自动在请求头部中添加所设定的自定义字段值作为流量标记,便于后端服务统计相关信息。

说明 如果请求中已存在该自定义头部字段,系统将用所设定的流量标记值覆盖请求中该自定义字段的值。
ResourceGroupId String rg-atstuj3rtop****

WAF实例在资源管理服务中所属的资源组ID。默认为空,即属于默认资源组。

关于资源组的更多信息,请参见创建资源组

AccessType String waf-cloud-dns

域名接入方式。取值:

  • waf-cloud-dns(默认):表示CNAME接入。
  • waf-cloud-native:表示透明接入。
HttpPort String [80]

HTTP协议端口列表,使用[port1,port2,……]格式表示。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)时,需要设置该参数。设置该参数表示域名使用HTTP协议。HttpPortHttpsPort不允许同时为空。
HttpsPort String [443]

HTTPS协议端口列表,使用[port1,port2,……]格式表示。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)时,需要设置该参数。设置该参数表示域名使用HTTPS协议。HttpPortHttpsPort不允许同时为空。
HttpsRedirect Integer 0

是否开启HTTPS强制跳转。开启强制跳转后,客户端的HTTP请求将被强制跳转成HTTPS请求,默认跳转端口为443。取值:

  • 0(默认):表示关闭。
  • 1:表示开启。
说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且HttpsPort取值不为空(表示域名使用HTTPS协议)时,需要设置该参数。
Http2Port String [443]

HTTP 2.0协议端口列表,使用[port1,port2,……]格式表示。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且HttpsPort取值不为空(表示域名使用HTTPS协议)时,需要设置该参数。
HttpToUserIp Integer 0

是否开启HTTP回源。开启HTTP回源后,HTTPS访问请求将通过HTTP协议转发回源站,默认回源端口为80。取值:

  • 0(默认):表示关闭。
  • 1:表示开启。
说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且HttpsPort取值不为空(表示域名使用HTTPS协议)时,需要设置该参数。
IpFollowStatus Integer 1

源站服务器地址同时包含IPv4和IPv6地址时,是否开启IPv4/IPv6回源协议跟随。开启回源协议跟随后,WAF将来自IPv4地址的请求转发到IPv4源站、将来自IPv6地址的请求转发到IPv6源站。取值:

  • 0(默认):表示关闭。
  • 1:表示开启。
说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)时,需要设置该参数。
SourceIps String ["39.XX.XX.197"]

域名对应的源站服务器IP或服务器回源域名。您只能选择设置源站服务器IP或服务器回源域名中的一种:

  • 设置源站服务器IP时,使用["ip1","ip2",……]格式表示。最多支持添加20个IP。
  • 设置服务器回源域名时,使用["domain"]格式表示。只能填写1个域名地址。
说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)时,需要设置该参数。
LoadBalancing Integer 0

回源时采用的负载均衡算法。取值:

  • 0:表示IP Hash算法。
  • 1:表示轮询算法。
  • 2:表示Least Time算法。
说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)时,需要设置该参数。
ClusterType Integer 0

WAF防护集群类型。取值:

  • 0(默认):表示物理集群。
  • 1:表示虚拟集群,即WAF独享集群。
说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)时,需要设置该参数。
ConnectionTime Integer 5

WAF独享集群的连接超时时长。单位:秒。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且ClusterType取值为1(表示域名使用WAF独享集群)时,需要设置该参数。
ReadTime Integer 120

WAF独享集群的读连接超时时长。单位:秒。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且ClusterType取值为1(表示域名使用WAF独享集群)时,需要设置该参数。
WriteTime Integer 120

WAF独享集群的写连接超时时长。单位:秒。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且ClusterType取值为1(表示域名使用WAF独享集群)时,需要设置该参数。
CloudNativeInstances String [{"ProtocolPortConfigs":[{"Ports":[80],"Protocol":"http"}],"RedirectionTypeName":"ALB","InstanceId":"alb-s65nua68wdedsp****","IPAddressList":["182.XX.XX.113"],"CloudNativeProductName":"ALB"}]

透明接入的服务器及端口配置列表。使用JSON数组转化的字符串格式表示。JSON数组中的每个元素是一个结构体,包含以下字段:

  • ProtocolPortConfigs:JSON Array类型 | 必选 | 表示协议及端口配置列表。JSON数组中的每个元素是一个结构体,包含以下字段:
    • Ports:Array类型 | 必选 | 表示端口列表,格式为[port1,port2,……]
    • Protocol:String类型 | 必选 | 表示协议类型。取值:httphttps
  • CloudNativeProductName:String类型 | 必选 | 表示云产品实例的类型。取值:ECSSLBALB
  • RedirectionTypeName:String类型 | 必选 | 表示引流端口的类型。取值:ECS(表示ECS端口)、SLB-L4(表示SLB四层端口)、SLB-L7(表示SLB七层端口)、ALB(表示ALB端口)。
  • InstanceId:String类型 | 必选 | 表示云产品实例的ID。
  • IPAddressList:Array类型 | 必选 | 表示云产品实例的公网IP列表。格式为["ip1","ip2",……]
说明 仅在AccessTypewaf-cloud-native(表示域名使用透明接入方式)时,需要设置该参数。
SniStatus Integer 1

设置是否开启回源SNI。回源SNI表示WAF转发客户端请求到源站服务器,在与源站进行TLS握手时,通过SNI扩展字段(Server Name Indicator extension)指定要访问的主机,并与该主机建立HTTPS连接。如果您的源站服务器有多个虚拟主机(对应不同域名),则您需要开启回源SNI。取值:

  • 0:表示关闭。
  • 1:表示开启。

中国内地WAF实例默认关闭SNI回源;海外地区WAF实例默认开启SNI回源。

说明 仅在AccessType取值为waf-cloud-dns(表示域名使用CNAME接入方式)且HttpsPort取值不为空(表示域名使用HTTPS协议)时,需要设置该参数。
SniHost String waf.example.com

自定义SNI扩展字段的值。如果不设置该参数,则默认使用请求头中Host字段的值作为SNI扩展字段的值。

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

说明 仅在SniStatus取值为1(表示开启SNI回源)时,需要设置该参数。

调用API时,除了本文中该API的请求参数,还需加入阿里云API公共请求参数。公共请求参数的详细介绍,请参见公共参数

调用API的请求格式,请参见本文示例中的请求示例。

返回数据

名称 类型 示例值 描述
Cname String mmspx7qhfvnfzggheh1g2wnbhog66vcv.****.com

WAF为域名分配的CNAME地址。

说明 仅当域名使用CNAME接入方式(请求参数AccessType取值为waf-cloud-dns)时,返回该参数。
RequestId String D7861F61-5B61-46CE-A47C-6B19160D5EB0

本次请求的ID。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateDomain
&InstanceId=waf-cn-7pp26f1****
&Domain=www.example.com
&IsAccessProduct=0
&HttpPort=[\"80\"]
&SourceIps=[\"39.XX.XX.197\"]
&<公共请求参数>

正常返回示例

XML格式

<CreateDomainResponse>
	  <Cname>mmspx7qhfvnfzggheh1g2wnbhog66vcv.****.com</Cname>
	  <RequestId>D7861F61-5B61-46CE-A47C-6B19160D5EB0</RequestId>
</CreateDomainResponse>

JSON格式

{
	"Cname": "mmspx7qhfvnfzggheh1g2wnbhog66vcv.****.com",
	"RequestId": "D7861F61-5B61-46CE-A47C-6B19160D5EB0"
}

错误码

访问错误中心查看更多错误码。