更新时间:2023-01-16 GMT+08:00

创建云模式防护域名

功能介绍

创建云模式防护域名

URI

POST /v1/{project_id}/waf/instance

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,对应控制台用户名->我的凭证->项目列表->项目ID

表2 Query参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

Content-Type

String

内容类型

缺省值:application/json;charset=utf8

表4 请求Body参数

参数

是否必选

参数类型

描述

hostname

String

域名(域名只能由字母、数字、-、_和.组成,长度不能超过64个字符,如www.domain.com)

policyid

String

防护域名初始绑定的策略ID,可以通过策略名称调用查询防护策略列表(ListPolicy)接口查询到对应的策略id

server

Array of CloudWafServer objects

防护域名的源站服务器配置信息

certificateid

String

证书id,通过查询证书列表接口(ListCertificates)接口获取证书id

  • 对外协议为HTTP时不需要填写

  • 对外协议HTTPS时为必填参数

certificatename

String

证书名

  • 对外协议为HTTP时不需要填写

  • 对外协议HTTPS时为必填参数

paid_type

String

套餐付费模式

枚举值:

  • prePaid

  • postPaid

proxy

Boolean

防护域名是否使用代理

  • false:不使用代理

  • true:使用代理

description

String

域名描述

表5 CloudWafServer

参数

是否必选

参数类型

描述

front_protocol

String

客户端请求访问防护域名源站服务器的协议

枚举值:

  • HTTP

  • HTTPS

back_protocol

String

WAF转发客户端请求到防护域名源站服务器的协议

枚举值:

  • HTTP

  • HTTPS

address

String

客户端访问的源站服务器的IP地址

port

Integer

WAF转发客户端请求到源站服务的业务端口

响应参数

状态码: 200

表6 响应Body参数

参数

参数类型

描述

id

String

域名id

hostname

String

创建的云模式防护域名

policyid

String

策略id

access_code

String

cname前缀

protect_status

Integer

域名防护状态:

  • -1:bypass,该域名的请求直接到达其后端服务器,不再经过WAF

  • 0:暂停防护,WAF只转发该域名的请求,不做攻击检测

  • 1:开启防护,WAF根据您配置的策略进行攻击检测

access_status

Integer

域名接入状态,0表示未接入,1表示已接入

protocol

String

返回的客户端协议类型

certificateid

String

返回的证书id

certificatename

String

证书名称

server

Array of CloudWafServer objects

防护域名的源站服务器配置信息

proxy

Boolean

防护域名是否使用代理

  • false:不使用代理

  • true:使用代理

timestamp

Long

创建防护域名的时间

exclusive_ip

Boolean

是否使用用户独享的引擎公网ip,该参数为预留参数,用于后续功能扩展,用户可忽略

  • true:使用独享ip

  • false:不使用独享ip

block_page

BlockPage object

告警页面配置

flag

Flag object

特殊标识,用于前端使用

extend

Map<String,String>

扩展字段,用于保存防护域名的一些配置信息。

表7 CloudWafServer

参数

参数类型

描述

front_protocol

String

客户端请求访问防护域名源站服务器的协议

枚举值:

  • HTTP

  • HTTPS

back_protocol

String

WAF转发客户端请求到防护域名源站服务器的协议

枚举值:

  • HTTP

  • HTTPS

address

String

客户端访问的源站服务器的IP地址

port

Integer

WAF转发客户端请求到源站服务的业务端口

表8 BlockPage

参数

参数类型

描述

template

String

模板名称

custom_page

CustomPage object

自定义告警页面

redirect_url

String

“重定向”页面URL

表9 CustomPage

参数

参数类型

描述

status_code

String

返回状态码

content_type

String

“自定义”告警页面内容类型,可选择text/html、text/xml和application/json三种类型

content

String

根据选择的“页面类型”配置对应的页面内容,具体示例可以参考“Web应用防火墙 WAF”用户手册

表10 Flag

参数

参数类型

描述

pci_3ds

String

是否开启pci_3ds合规认证

  • true:开启

  • false:不开启

枚举值:

  • true

  • false

pci_dss

String

是否开启pci_dss合规认证

  • true:开启

  • false:不开启

枚举值:

  • true

  • false

状态码: 400

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 401

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 500

表13 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

POST https://{Endpoint}/v1/{project_id}/waf/instance?enterprise_project_id=0

{
  "hostname" : "www.demo.com",
  "server" : [ {
    "front_protocol" : "HTTPS",
    "back_protocol" : "HTTP",
    "type" : "ipv4",
    "address" : "x.x.x.x",
    "port" : "7443"
  } ],
  "proxy" : false,
  "paid_type" : "prePaid",
  "certificateid" : "3ac1402300374a63a05be68c641e92c8",
  "certificatename" : "test6",
  "exclusive_ip" : false
}

响应示例

状态码: 200

OK

{
  "id" : "31af669f567246c289771694f2112289",
  "hostname" : "www.demo.com",
  "protocol" : "HTTP",
  "server" : [ {
    "address" : "x.x.x.x",
    "port" : 80,
    "weight" : 1,
    "front_protocol" : "HTTP",
    "back_protocol" : "HTTP"
  } ],
  "proxy" : false,
  "locked" : 0,
  "timestamp" : 1650527546420,
  "flag" : {
    "pci_3ds" : "false",
    "pci_dss" : "false",
    "cname" : "new"
  },
  "policyid" : "41cba8aee2e94bcdbf57460874205494",
  "domainid" : "d4ecb00b031941ce9171b7bc3386883f",
  "projectid" : "0456cf04d6f64725ab02ed5bd2efdfa4",
  "enterprise_project_id" : "0",
  "protect_status" : 1,
  "access_status" : 0,
  "access_code" : "1b18879b9d064f8bbcbf8abce7294cac",
  "block_page" : {
    "template" : "default"
  },
  "exclusive_ip" : false
}

状态码

状态码

描述

200

OK

400

请求失败

401

token权限不足

500

服务器内部错误

错误码

请参见错误码