适用于: ✔️ Front Door 标准版 ✔️ Front Door 高级版
自定义域是 Azure Front Door 用来接收应用程序流量的域名。 Azure Front Door 支持添加三种类型的域名:
-
子域 是最常见的自定义域名类型。 子域示例如下:
myapplication.contoso.com。 -
Apex 域 不包含子域。 顶级域的一个示例是
contoso.com。 有关将顶点域与 Azure Front Door 配合使用的详细信息,请参阅 Apex 域。 -
通配符域名 可以接收来自任意子域的流量。 通配符域示例如下:
*.contoso.com。 有关将通配符域与 Azure Front Door 配合使用的详细信息,请参阅 通配符域。
在你的 Azure Front Door 配置文件中添加域名。 如果你在同一条终端中使用不同的路径,可以在多个路由中使用一个域。
若要了解如何将自定义域添加到 Azure Front Door 配置文件,请参阅使用 Azure 门户在 Azure Front Door 上配置自定义域。
DNS 配置
将域添加到 Azure Front Door 配置文件时,需要在 DNS 服务器中配置以下两个记录:
- DNS TXT 记录,它是验证域名所有权所必需的。 有关 DNS TXT 记录的详细信息,请参阅 域验证。
- DNS CNAME 记录,它用于控制流向 Azure Front Door 的 Internet 流量。
Tip
在进行任何 DNS 更改之前,可以将域名添加到 Azure Front Door 配置文件。 如果需要一起设置 Azure Front Door 配置,或者有单独的团队负责更改 DNS 记录,则此方法非常有用。
在添加 CNAME 记录以控制流量流之前,还可以添加 DNS TXT 记录来验证域所有权。 如果你已经有应用程序在生产环境中,这种方法可以帮助你避免迁移停机。
域验证
你必须验证所有添加到 Azure Front Door 的域名。 验证有助于防止意外配置错误,同时也帮助保护他人免受域名伪造。 在某些情况下,其他 Azure 服务可以预验证域名。 否则,需要遵循 Azure Front Door 域验证过程来证明你对域名的所有权。
Azure预验证域名是其他支持的Azure服务验证的域名。 如果你先将某个域接入到另一 Azure 服务并完成验证,然后再配置 Azure Front Door,那么你处理的可能是已预先验证的域。 使用此类型的域时,无需通过 Azure Front Door 验证域。
Note
Azure Front Door 目前仅接受使用 Azure Static Web Apps 配置的预验证域。
非 Azure 验证域名是指支持的 Azure 服务不会验证的域名。 可以使用任何 DNS 服务(包括Azure DNS)托管此域类型,并且必须通过Azure Front Door验证其所有权。
TXT 记录验证
要验证域名,创建 DNS TXT 记录。 TXT 记录的名称必须采用 _dnsauth.{subdomain} 格式。 开始将域添加到 Azure Front Door 时,Azure Front Door 将为 TXT 记录提供唯一值。
例如,假设你想要将自定义子域 myapplication.contoso.com 与 Azure Front Door 配合使用。 首先,将域添加到你的 Azure Front Door 配置文件中,并记录你需要使用的 TXT 记录值。 然后,配置具有以下属性的DNS记录:
| Property | Value |
|---|---|
| 记录名称 | _dnsauth.myapplication |
| 记录值 | 使用 Azure Front Door 提供的值 |
| 生存时间 (TTL) | 1 小时 |
域名验证成功后,你可以安全地删除DNS服务器上的TXT记录。
有关为自定义域添加 DNS TXT 记录的更多信息,请参见“使用 Azure 门户在 Azure Front Door 配置自定义域”。
域验证状态
下表列出了域可能显示的验证状态。
| 域验证状态 | 说明和操作 |
|---|---|
| Submitting | 正在创建自定义域。 等待域资源准备就绪。 |
| Pending | DNS TXT 记录值已经生成,Azure Front Door 已经准备好为你添加 DNS TXT 记录。 请将 DNS TXT 记录添加到 DNS 提供程序,并等待验证完成。 如果状态在 DNS 提供商更新后仍显示 待处理 ,选择 重新生成 以刷新 TXT 记录,然后再次将 TXT 记录添加到你的 DNS 提供商中。 |
| 等待重新验证 | 托管证书距离到期不足 45 天。 如果有已指向 Azure Front Door 终结点的 CNAME 记录,则不需要执行任何操作来续订证书。 如果自定义域指向另一个CNAME记录,选择待处理的重新验证状态,然后在“验证自定义域”页面选择“重新生成”。 最后,如果使用的是 Azure DNS,请选择 “添加” ,或使用自己的 DNS 提供程序的 DNS 管理手动添加 TXT 记录。 |
| 正在刷新验证令牌 | 选择“重新生成”按钮后,域会短暂进入“正在刷新验证令牌”状态。 发出新的 TXT 记录值后,状态将更改为 “挂起”。 无需执行任何操作。 |
| Approved | 该域已成功验证,Azure Front Door 可以接受使用该域的流量。 无需执行任何操作。 |
| Rejected | 证书提供者或管理机构拒绝了管理证书的发行。 例如,域名可能无效。 选择“拒绝”链接,然后在“验证自定义域名”页面选择重新生成。 然后选择“ 添加” 以在 DNS 提供程序中添加 TXT 记录。 |
| Timeout | 未在七天内向您的 DNS 提供商添加 TXT 记录,或者添加了无效的 DNS TXT 记录。 选择“超时”链接,然后在“验证自定义域”页上选择“重新生成”。 然后选择 “添加” ,将新的 TXT 记录添加到 DNS 提供程序。 确保使用更新的值。 |
| 内部错误 | 发生未知错误。 通过选择 “刷新 ”或 “重新生成 ”按钮重试验证。 如果仍然遇到问题,请向 Azure 支持提交支持请求。 |
Note
- TXT记录的默认TTL是一小时。 当你需要重新生成TXT记录进行重新验证时,注意之前TXT记录的TTL。 如果没有过期,验证会失败,直到之前的TXT记录过期。
- 如果 “重新生成 ”按钮不起作用,请删除并重新创建域。
- 如果域状态未按预期反映,请选择“ 刷新 ”按钮。
自定义域的 HTTPS
通过在自定义域名上使用HTTPS协议,你可以通过TLS/SSL加密确保敏感数据在互联网传输时安全传递。 当客户端像网页浏览器一样通过HTTPS连接网站时,客户端会验证网站的安全证书,并确保该证书由合法的证书颁发机构颁发。 此过程提供安全性并保护 Web 应用程序免受攻击。
Azure Front Door 支持将 HTTPS 与你自己的域配合使用,并从源服务器卸载传输层安全性 (TLS) 证书管理。 使用自定义域时,可以购买和使用自己的 TLS 证书。
有关 Azure Front Door 如何与 TLS 配合使用的详细信息,请参阅将端到端 TLS 与 Azure Front Door 配合使用。
客户管理的 TLS 证书
有时候,你需要提供自己的TLS证书。 提供你自己的证书的常见场景包括:
- 组织要求使用由特定证书颁发机构颁发的证书。
- 你希望 Azure 密钥保管库 使用合作伙伴证书颁发机构来颁发证书。
- 需要使用客户端应用程序可识别的 TLS 证书。
- 需要在多个系统上使用相同的 TLS 证书。
Note
- Azure Front Door 支持自带证书(BYOC)用于域名所有权验证。 如果证书的证书名称 (CN) 或使用者可选名称 (SAN) 与自定义域匹配,Front Door 会批准域所有权。
- 对于在基于 BYOC 的验证之前创建的自定义域,并且域验证状态未 获得批准,需要通过选择 “验证状态 ”并单击门户中的“ 重新验证 ”按钮来触发域所有权验证的自动批准。 如果使用命令行工具,可通过向域 API 发送空的 PATCH 请求来触发域验证。
证书要求
若要将证书用于 Azure Front Door,必须满足以下要求:
- 证书链完整:创建 TLS/SSL 证书时,必须使用 Microsoft 受信任 CA 列表中允许的证书颁发机构 (CA) 创建完整的证书链。 如果使用不允许的 CA,则会拒绝你的请求。 根 CA 必须是 Microsoft 受信任的 CA 列表的一部分。 如果提供的是没有完整链的证书,则不能保证涉及该证书的请求实现预期效果。
- 公用名: 证书的公用名(CN)必须与 Azure Front Door 中配置的域匹配。
- 算法: Azure Front Door 不支持具有椭圆曲线(EC)加密算法的证书。
-
文件(内容)类型: 你必须从PFX文件上传证书到密钥库,该文件使用内容
application/x-pkcs12类型。
将证书导入 Azure 密钥保管库
您必须先将自定义TLS证书导入Azure 密钥保管库,才能与Azure Front Door一起使用。 若要了解如何将证书导入密钥保管库,请参阅 教程:在 Azure 密钥保管库 中导入证书。
密钥保管库必须与 Azure Front Door 配置文件位于同一 Azure 订阅中。
警告
Azure Front Door 仅支持与 Front Door 配置文件相同的订阅中的密钥保管库。 选择与 Azure Front Door 配置文件不同的订阅密钥库会导致失败。
你必须将证书作为证书对象上传,而不是秘密。
授予对 Azure Front Door 的访问权限
Azure Front Door 需要访问密钥保管库才能读取证书。 需要同时配置密钥保管库的网络防火墙和保管库的访问控制。
如果密钥保管库启用了网络访问限制,则必须将密钥保管库配置为允许受信任的Microsoft服务绕过防火墙。
您可以通过两种方式配置密钥库的访问控制:
- Azure Front Door 可以使用托管标识访问密钥保管库。 当密钥保管库使用 Microsoft Entra 身份验证时,可以使用此方法。 有关详细信息,请参阅 将托管标识与 Azure Front Door 标准版/高级版配合使用。
- 或者,您也可以授予 Azure Front Door 的服务主体访问您的密钥库。 使用保管库访问策略时,可以使用此方法。
将自定义证书添加到 Azure Front Door
在将证书导入密钥保险库后,创建一个 Azure Front Door 秘密资源,它引用你添加到密钥库中的证书。
然后,将域配置为使用 Azure Front Door 机密作为其 TLS 证书。
有关这些步骤的引导式演练,请参阅 使用 Azure 门户在 Azure Front Door 自定义域上配置 HTTPS。
证书续订
续订客户管理的 TLS 证书
当更新密钥保管库中的证书时,Azure Front Door 可以自动检测并使用更新的证书。 为了让此功能正常工作,在配置 Azure Front Door 证书时,将秘密版本设置为最新。
如果您选择了特定版本的证书,更新证书时必须手动重新选择新版本。
新版本的证书或密钥自动部署需要长达72小时。
如果你想将秘密版本从 最新 更改为指定版本或反之,请添加新的证书。
安全策略
使用Azure Front Door的Web应用防火墙(WAF)扫描对应用的请求是否有威胁并执行其他安全要求。
若要将 WAF 与自定义域配合使用,请使用 Azure Front Door 安全策略资源。 安全策略将域与 WAF 策略相关联。 可以选择创建多个安全策略,以便能够对不同的域使用不同的 WAF 策略。