You need to enable JavaScript to run this app.
导航
CreateDomain-通过 CNAME 方式接入
最近更新时间:2024.12.10 17:50:59首次发布时间:2024.02.01 14:25:20

如果您的业务未配置负载均衡,建议通过 CNAME 方式接入云 WAF 实例。配置防护域名参数和 WAF 回源参数后,您只需要修改防护域名的 DNS 解析记录并放行火山引擎 Web 应用防火墙的回源 IP 地址,即可完成域名接入。

前提条件

  • 防护域名已备案,且未添加到 WAF。
  • 您已购买火山引擎云 WAF 实例。

注意事项

通过该接口完成添加后,您还需要进行以下操作才能实现防护:

  • 前往域名的 DNS 服务器,将网站的 DNS 服务记录类型设置为 CNAME,并将记录值修改为接口返回的 CNAME 值。
  • 将 WAF 回源 IP 地址段添加到源站的防火墙、ACL 或者其他任何安全软件白名单中,以确保回源 IP 不受源站安全策略影响。

请求说明

  • 请求方式:POST
  • 请求地址:https://open.volcengineapi.com/?Action=CreateDomain&Version=2023-12-25

请求参数

参数

类型

是否必填

示例值

描述

Region

String

cn-beijing

云 WAF 实例所在区域。

  • 华北 2(北京):cn-beijing
  • 华东 2(上海):cn-shanghai
  • 华南 1(广州):cn-guangzhou
  • 亚太东南(柔佛):ap-southeast-1

AccessMode

Integer

10

接入模式。CNAME 接入时请填入10

  • 10:CNAME 接入
  • 11:负载均衡(CLB) 7 层监听器接入
  • 12:应用型负载均衡(ALB)接入
  • 13:负载均衡(CLB) 4 层监听器接入
  • 20:应用型负载均衡(ALB)实例接入

Domain

String

example.volcwaf001.com

需要防护的域名信息,支持泛域名和精确域名。

Protocols

Array of Strings

["HTTP"]

接入协议类型,支持单选和多选。

  • HTTP
  • HTTPS

说明

  • EnableHTTP2=1时,需勾选HTTPS
  • ProtocolFollow=1时,需同时勾选HTTPHTTPS

ProtocolPorts

ProtocolPorts object

-

接入端口信息。

EnableHTTP2

Integer

0

是否开启 HTTP 2.0,默认为关闭。

  • 0:关闭
  • 1:开启

ProtocolFollow

Integer

0

是否开启协议跟随,默认为关闭。

  • 0:关闭
  • 1:开启

EnableIPv6

Integer

1

是否支持防护 IPv6 请求,默认为关闭。

  • 0:关闭
  • 1:开启

CertificateID

Integer

369

协议类型为 HTTPS 时需要输入绑定的证书 ID。您可通过ListWafServiceCertificate-查看证书详情获取。

TLSEnable

Integer

1

是否开启日志服务,默认为开启。

  • 0:关闭
  • 1:开启

ProxyConfig

Integer

0

是否开启代理配置,默认为关闭。

  • 0:关闭
  • 1:开启

SSLProtocols

Array of Strings

["TLSv1","TLSv1.1","TLSv1.2","TLSv1.3"]

TLS 协议版本。协议类型选择 HTTPS 时需要配置,默认为全部勾选。支持以下版本:

  • TLSv1
  • TLSv1.1
  • TLSv1.2
  • TLSv1.3

说明

选择多个 TLS 版本时,需保持协议版本连续,例如:

  • 不支持仅选择 TLSv1TLSv1.2
  • 支持选择以下几个组合:
    • TLSv1 TLSv1.1
    • TLSv1TLSv1.1
    • TLSv1TLSv1.1TLSv1.2

SSLCiphers

Array of Strings

["AES128-SHA","ECDHE-RSA-AES256-SHA","ECDHE-RSA-AES128-SHA","ECDHE-ECDSA-AES256-SHA"]

加密套件。不同 TLS 协议版本支持的加密套件不同,对应关系如下:

  • TLSv1
    • ECDHE-ECDSA-AES128-SHA
    • ECDHE-ECDSA-AES256-SHA
    • ECDHE-RSA-AES128-SHA
    • ECDHE-RSA-AES256-SHA
    • AES128-SHA
    • AES256-SHA
    • DES-CBC3-SHA
  • TLSv1.1
    • ECDHE-ECDSA-AES128-SHA
    • ECDHE-ECDSA-AES256-SHA
    • ECDHE-RSA-AES128-SHA
    • ECDHE-RSA-AES256-SHA
    • AES128-SHA
    • AES256-SHA
    • DES-CBC3-SHA
  • TLSv1.2
    • ECDHE-ECDSA-AES128-SHA
    • ECDHE-ECDSA-AES256-SHA
    • ECDHE-RSA-AES128-SHA
    • ECDHE-RSA-AES256-SHA
    • AES128-SHA
    • AES256-SHA
    • DES-CBC3-SHA
    • ECDHE-ECDSA-AES128-GCM-SHA256
    • ECDHE-ECDSA-AES256-GCM-SHA384
    • ECDHE-ECDSA-AES128-SHA256
    • ECDHE-ECDSA-AES256-SHA384
    • ECDHE-RSA-AES128-GCM-SHA256
    • ECDHE-RSA-AES256-GCM-SHA384
    • ECDHE-RSA-AES128-SHA256
    • ECDHE-RSA-AES256-SHA384
    • AES128-GCM-SHA256
    • AES256-GCM-SHA384
    • AES128-SHA256
    • AES256-SHA256
  • TLSv1.3
    • TLS_AES_128_GCM_SHA256
    • TLS_AES_256_GCM_SHA384
    • TLS_CHACHA20_POLY1305_SHA256
    • TLS_AES_128_CCM_SHA256
    • TLS_AES_128_CCM_8_SHA256

说明

每个选择的 TLS 协议版本必须至少有一个对应的加密套件。

KeepAliveTimeOut

Integer

75

长连接保持时间,支持 0-900 秒。默认为 75 秒。

KeepAliveRequest

Integer

100

长连接复用个数,支持 60-1000 个,默认为 100 个。

ClientMaxBodySize

Integer

10000

客户端请求 body 最大值,支持 1-10240 MB,默认为 60 MB。

LBAlgorithm

String

wrr

负载均衡算法类型。

  • wrr:加权轮询
  • wlc:加权最小连接数
  • sh:源地址哈希

PublicRealServer

Integer

1

CNAME 接入回源方式。

  • 0:私网回源
  • 1:公网回源

VpcID

String

vpc-2d6h8jexjwuf458ozfdjo****

VPC ID。当回源方式为私网回源,即PublicRealServer=0时需填写。如需获取对应 ID 可参考 DescribeVpc

BackendGroups

Array of BackendGroups objects

-

源站配置。

ClientIPLocation

Integer

1

客户端 IP 获取方式。

  • 0:自定义 Header 字段
  • 1:将 X-Forwarded-For(XFF)字段中第一个公网 IP 地址作为客户端真实 IP 地址

CustomHeader

Array of Strings

["abcd","test"]

自定义 Header。

  • 当客户端 IP 获取方式为自定义 Header 字段,即ClientIPLocation=0时需要填写。
  • 最多支持配置 5 个自定义 Header。

ProxyConnectTimeOut

Integer

4

WAF 和后端服务器的建连超时时间,支持 4-120 秒,默认为 4 秒。

ProxyWriteTimeOut

Integer

60

WAF 将请求传输到后端服务器的超时时间,支持 30-3600 秒,默认 为 60 秒。

ProxyReadTimeOut

Integer

60

WAF 从后端服务器读取响应的超时时间,支持 0-900 秒。默认为 60 秒。

ProxyKeepAlive

Integer

100

WAF 回源长连接可复用个数,支持 60-1000 个,默认为 100 个。

ProxyRetry

Integer

3

WAF 回源重试次数,支持 1-10 次,默认为 3 次。

ProxyKeepAliveTimeOut

Integer

15

空闲长连接超时时间,支持 1-60 秒,默认为 15 秒。

ProtocolPorts

参数

类型

是否必填

示例值

描述

HTTP

Array of Integers

[80,81]

HTTP 协议支持的端口,包括:80、81、82、83、84、86、87、88、89、97、800、808、1000、1090、3333、3501、3601、5000、5222、6001、6666、7000、7001、7002、7003、7004、7005、7006、7009、7010、7011、7012、7013、7014、7015、7016、7018、7019、7020、7021、7022、7023、7024、7025、7026、7070、7081、7082、7083、7088、7097、7510、7777、7800、8000、8001、8002、8003、8008、8009、8020、8021、8022、8025、8026、8077、8078、8080、8081、8082、8083、8084、8085、8086、8087、8088、8089、8090、8091、8106、8181、8334、8336、8686、8800、8888、8889、8999、9000、9001、9002、9003、9021、9023、9027、9037、9080、9081、9082、9180、9200、9201、9205、9207、9208、9209、9210、9211、9212、9213、9898、9908、9916、9918、9919、9928、9929、9939、9999、10000、10001、10080、12601、28080、33702、48800

HTTPS

Array of Integers

[443,4443]

HTTPS 协议支持的端口,包括:443、4443、5443、6443、7443、8443、8553、8663、9443、9553、9663、18980

BackendGroups

参数

类型

是否必填

示例值

描述

AccessPort

Array of Integers

[80]

接入端口号。与ProtocolPorts的端口号信息一致。

Backends

Array of Backends objects

-

源站组详情。

Name

String

default

源站组名称。默认为default

Backends

参数

类型

是否必填

示例值

描述

Protocol

String

HTTP

源站协议。

说明

同一域名下所有回源端口的协议需要保持一致。

IP

String

1.1.1.1

源站 IP 地址。

Port

Integer

80

源站端口号。

Weight

Integer

100

源站规则的权重,取值范围:1-100。默认为 100。

说明

负载均衡算法为源站地址哈希(sh),即LBAlgorithm=sh时无需填写。

返回参数

参数

类型

示例值

描述

Domain

String

example.volcwaf001.com

防护网站域名。

Cname

String

****8145cb62d5e2edcde7f1f65db419.waf.msadhbui21.com

WAF 实例生成的 CNAME 值。

说明

请访问网站的 DNS 服务器将对应网站的 DNS 服务记录类型设置为CNAME,并将记录值修改为以下WAF CNAME。

ServerIps

String

33.33.33.33

WAF 防护实例的 IP。

请求示例

POST https://open.volcengineapi.com/?Action=CreateDomain&Version=2023-12-25
X-Date: 20230711T035055Z
Authorization: HMAC-SHA256 Credential=AKLTNGU0OGEyMT***/20230711/cn-beijing/waf/request, SignedHeaders=content-type;x-content-sha256;x-date, Signature=da4fac562d00f41ad8***

{
  "Region": "cn-beijing",
  "AccessMode": 10,
  "ClientIPLocation": 1,
  "Domain": "example.volcwaf001.com",
  "ProtocolFollow": 0,
  "EnableHTTP2": 0,
  "EnableIPv6": 0,
  "Protocols": [
    "HTTPS"
  ],
  "TLSEnable": 1,
  "ProxyConfig": 0,
  "KeepAliveTimeOut": 75,
  "KeepAliveRequest": 100,
  "ClientMaxBodySize": 60,
  "SSLProtocols": [
    "TLSv1",
    "TLSv1.1"
  ],
  "SSLCiphers": [
    "AES128-SHA",
    "ECDHE-RSA-AES256-SHA",
    "ECDHE-RSA-AES128-SHA",
    "ECDHE-ECDSA-AES256-SHA"
  ],
  "PublicRealServer": 1,
  "LBAlgorithm": "wrr",
  "ProxyConnectTimeOut": 4,
  "ProxyWriteTimeOut": 60,
  "ProxyReadTimeOut": 60,
  "ProxyKeepAlive": 100,
  "ProxyRetry": 3,
  "ProxyKeepAliveTimeOut": 15,
  "CertificateID": 306,
  "ProtocolPorts": {
    "HTTP": [],
    "HTTPS": [
      443
    ]
  },
  "BackendGroups": [
    {
      "AccessPort": [
        443
      ],
      "Backends": [
        {
          "Protocol": "HTTP",
          "IP": "1.1.1.1",
          "Port": 80,
          "Weight": 100
        }
      ],
      "Name": "default"
    }
  ]
}

返回示例

{
    "ResponseMetadata": {
        "RequestId": "2024013121155819E39E763AACD04E****",
        "Action": "CreateDomain",
        "Version": "2023-12-25",
        "Service": "waf",
        "Region": "cn-beijing"
    },
    "Result": {
        "Domain": "example.volcwaf001.com",
        "Cname": "****8145cb62d5e2edcde7f1f65db419.waf.msadhbui21.com",
        "ServerIps": "33.33.33.33"
    }
}