普通 DNS 记录将域名映射到一个或多个 IP 地址或其他关联资源(一对多映射)。通配符 DNS 记录允许你进行多对多映射,例如当你有成百上千个子域希望指向相同资源时。
在 Cloudflare 内,通配符 DNS 记录可以是已代理或仅 DNS。
要创建通配符 DNS 记录,请创建 DNS 记录,并在 Name(名称) 字段中使用 *。
| Type | Name | IPv4 address | Proxy status |
|---|---|---|---|
A |
* |
192.0.2.1 |
Proxied |
你也可以专门为更深的子域创建通配符 DNS 记录。例如,若要在 *.www.example.com 上创建通配符记录,请在名称字段中创建名称为 *.www 的记录。
| Type | Name | IPv4 address | Proxy status |
|---|---|---|---|
CNAME |
*.www |
example.com |
Proxied |
这意味着诸如 subdomain.*.example.com 之类的主机名在星号字符层级上并不是通配符。若你使用该名称创建 DNS 记录,星号会被解释为字面字符 *,而不是通配符运算符。
若你在 *.*.example.com 上创建 DNS 记录,仅第一个星号被解释为通配符,而第二个被解释为字面 * 字符。记录 *.example.com 默认已是多级的,意味着它会覆盖 abc.example.com 以及 123.abc.example.com,只要没有会优先的特定 DNS 记录。
通配符记录仅在查询名称处不存在精确记录时适用。若存在记录或委派,则通配符不适用。
示例 1 - 特定或其下级
若你的域名上只有这两条记录:
| Type | Name | Content |
|---|---|---|
A |
* |
192.0.2.1 |
TXT |
abc |
<some_text> |
A 通配符记录将用于发往 example.com 任何子域的查询,但 abc.example.com 或该特定标签之下的任何内容(123.abc.example.com 或 deeper.label.abc.example.com 等)除外。
通配符仍将用于不在 abc.example.com 特定记录之下的更深标签——例如 deeper.label.xyz.example.com。
示例 2 - 隐式父级
若你的域名上只有这两条记录:
| Type | Name | Content |
|---|---|---|
A |
* |
192.0.2.1 |
TXT |
123.abc |
<some_text> |
在此示例中,123.abc.example.com 是 abc.example.com 的后代,而 abc.example.com 没有关联记录。行为取决于你使用的名称服务器类型:
- 标准名称服务器:通配符
*.example.com仍将适用于abc.example.com。 - 高级名称服务器1:根据 RFC 4592 ↗,通配符
*.example.com将不适用于abc.example.com。
所有套餐的客户都可以创建并代理通配符 DNS 记录。
若你对 DNS 使用 CNAME 设置(部分),Cloudflare 不会自动为你的通配符记录预配 SSL/TLS 证书。
对于通配符主机名证书,证书的签发和续期因您使用的证书类型而异:
- Universal(通用):使用 TXT 验证方法 执行 DCV。
- Advanced(高级):在大多数情况下,您可以选择 Delegated DCV,这大大简化了证书管理。
若无法使用 Delegated DCV,您需要使用基于 TXT 的 DCV 进行证书签发和续期。这意味着您需要为证书上的每个主机名放置一个 TXT DCV 令牌。若证书上一个或多个主机名验证失败,证书将无法签发或续期。
这意味着覆盖 example.com 和 *.example.com 的通配符证书需要在权威 DNS 提供商处放置两个 DCV 令牌。同样,SAN 中包含五个主机名(含通配符)的证书需要在权威 DNS 提供商处放置五个 DCV 令牌。
有关通配符记录的更多信息——以及有关其限制的更多详情——请参阅介绍性博文 ↗。
-
对企业客户可用的可选配置。 ↩