你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Front Door(经典)自定义域上配置 HTTPS

重要

Azure Front Door(经典版)将于 2027 年 3 月 31 日停用。 为了避免任何服务中断,请务必在 2027 年 3 月之前将 Azure Front Door(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Azure Front Door(经典版)停用

本文介绍如何在前端主机部分下为与 Front Door(经典)关联的自定义域启用 HTTPS 协议。 通过在自定义域(例如 https://www.contoso.com)上使用 HTTPS 协议,可以确保敏感数据在通过 Internet 发送时可以通过 TLS/SSL 加密安全地进行分发。 当 Web 浏览器通过 HTTPS 连接到网站时,它会验证网站的安全证书并验证该证书是否由合法证书颁发机构颁发。 此过程提供安全性并保护 Web 应用程序免受恶意攻击。

默认情况下,Azure Front Door 支持 Front Door 默认主机名中的 HTTPS。 例如,如果创建一个 Front Door(例如 https://contoso.azurefd.net),则会自动为向 https://contoso.azurefd.net 发出的请求启用 HTTPS。 但加入自定义域“www.contoso.com”之后,需要另外为此前端主机启用 HTTPS。

自定义 HTTPS 功能的一些关键属性包括:

  • 无额外费用:可免费获取或续订证书,对 HTTPS 流量也不额外收费。

  • 简单启用:可从 Azure 门户进行一键式预配。 还可以使用 REST API 或其他开发人员工具启用该功能。

  • 提供完整的证书管理:为你处理所有证书获取和管理。 证书在过期之前将自动进行预配并续订,这可消除由于证书过期而导致服务中断的风险。

在本教程中,你将了解如何执行以下操作:

  • 在自定义域上启用 HTTPS 协议。
  • 使用 AFD 托管的证书
  • 使用自己的证书,即,自定义 TLS/SSL 证书
  • 验证域
  • 在自定义域上禁用 HTTPS 协议

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

先决条件

在完成本教程中的步骤之前,必须先创建一个 Front Door 并至少载入一个自定义域。 有关详细信息,请参阅教程:将自定义域添加到 Front Door

TLS/SSL 证书

要启用 HTTPS 协议以在 Front Door 自定义域(经典)上安全传递内容,必须使用 TLS/SSL 证书。 可以选择是使用由 Azure Front Door 管理的证书还是使用自己的证书。

选项 1(默认):使用 Front Door 托管的证书

在使用由 Azure Front Door 托管的证书时,只需更改几项设置即可启用 HTTPS 功能。 Azure Front Door 可以处理所有证书管理任务,如获取和续订。 启用此功能后,进程将立即启动。 如果自定义域已映射到 Front Door 的默认前端主机 ({hostname}.azurefd.net),则不需要进一步操作。 Front Door 将会自动执行步骤并完成请求。 但是,如果自定义域映射到其他位置,则必须使用电子邮件来验证域所有权。

若要在自定义域上启用 HTTPS,请执行以下步骤:

  1. Azure 门户中,导航到 Front Door 配置文件。

  2. 在前端主机列表中,选择要启用 HTTPS 的自定义域,以包含自己的自定义域。

  3. 在“自定义域 HTTPS”部分选择“已启用”,然后选择“Front Door 托管”作为证书源 。

  4. 选择“保存”。

  5. 继续验证域

注意

  • 对于 Azure Front Door 托管证书,强制实施 DigiCert 的 64 字符限制。 如果超出该限制,验证将失败。
  • 对于顶点/根域(例如 contoso.com),不支持通过 Front Door 托管证书启用 HTTPS。 对于这种情况,你可以使用自己的证书。 有关更多详细信息,请继续参阅“选项 2”。

选项 2:使用自己的证书

可以使用自己的证书启用 HTTPS 功能。 此过程通过与 Azure Key Vault 的集成完成,后者允许你安全地存储证书。 Azure Front Door 使用此安全机制来获取你的证书,并且需要一些额外的步骤。 创建 TLS/SSL 证书时,必须使用 Microsoft 受信任 CA 列表中允许的证书颁发机构 (CA) 创建完整的证书链。 如果使用不允许的 CA,则会拒绝你的请求。 如果提供的是没有完整链的证书,则不能保证涉及该证书的请求实现预期效果。

准备你的密钥保管库帐户和证书

  • 必须在 Front Door 所在的 Azure 订阅中有一个密钥保管库帐户。 创建密钥保管库帐户(如果还没有)。

    警告

    Azure Front Door 目前仅支持 Front Door 配置所在的同一订阅中的 Key Vault 帐户。 选择不包含你的 Front Door 的订阅中的 Key Vault 会导致失败。

  • 如果密钥保管库启用了网络访问限制,则必须将密钥保管库配置为允许受信任的 Microsoft 服务绕过防火墙。

  • 密钥保管库必须配置为使用 Key Vault 访问策略权限模型。

  • 如果你已经有了证书,可以将其直接上传到密钥保管库。 否则,请直接通过 Azure 密钥保管库集成的某个伙伴证书颁发机构 (CA) 中的 Azure 密钥保管库来创建新证书。 将证书上传为证书对象,而不是机密

注意

Front Door 不支持带椭圆曲线 (EC) 加密算法的证书。 证书必须有完整的证书链(包括叶证书和中间证书),根 CA 必须包含在 Microsoft 受信任 CA 列表中。

注册 Azure Front Door

使用 Azure PowerShell 或 Azure CLI 将 Azure Front Door 服务主体注册为 Microsoft Entra ID 中的应用。

注意

  • 此操作至少需要 Microsoft Entra ID 中的应用程序管理员角色权限。 每个 Microsoft Entra 租户只需执行一次注册
  • 应用程序 ID 由 Azure 专门为 Azure Front Door(经典版)分配。
  • Azure Front Door(经典)的应用程序 ID 不同于 Azure Front Door 标准/高级层。
  • 除非定义了其他范围,否则分配的角色仅用于所选订阅。
Azure PowerShell
  1. 根据需要在本地计算机上的 PowerShell 中安装 Azure PowerShell

  2. 在 PowerShell 中运行以下命令:

    New-AzADServicePrincipal -ApplicationId "ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037"
    
Azure CLI
  1. 如果需要,可在本地计算机上安装 Azure CLI

  2. 在 CLI 中运行以下命令:

    az ad sp create --id ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037
    

授予 Azure Front Door 对 Key Vault 的访问权限

授予 Azure Front Door 访问 Azure Key Vault 帐户中的证书的权限。

  1. 在密钥保管库帐户中,选择“访问策略”。

  2. 选择“创建”以创建新的访问策略。

  3. 在“机密权限” 中,选择 Get 以允许 Front Door 检索证书。

  4. 在“证书权限” 中,选择 Get 以允许 Front Door 检索证书。

  5. 在“选择主体”中搜索 ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037,然后选择“Microsoft.Azure.Frontdoor”。 选择“下一页”。

  6. 应用程序中,选择下一步

  7. 在“查看 + 创建”中,选择“创建” 。

注意

如果密钥保管库受到网络访问限制的保护,请确保允许受信任的 Microsoft 服务访问密钥保管库。

Azure Front Door 现在可以访问此密钥保管库以及存储在其中的证书。

选择要部署的 Azure Front Door 的证书

  1. 在门户中返回到 Front Door。

  2. 在自定义域列表中,选择要为其启用 HTTPS 的自定义域。

    此时将显示“自定义域”页。

  3. 在证书管理类型下,选择“使用我自己的证书” 。

  4. Azure Front Door 要求 Key Vault 帐户的订阅与 Front Door 的订阅相同。 选择密钥保管库、机密和机密版本。

    Azure Front Door 列出以下信息:

    • 订阅 ID 的 Key Vault 帐户。
    • 所选密钥保管库下的机密。
    • 可用的机密版本。

    注意

    要在密钥保管库中有更新版本的证书可用时自动将证书轮换为最新版本,请将机密版本设置为“最新”。 如果选择了特定版本,则必须为证书轮换手动重新选择新版本。 部署新版本的证书/机密需要 72 - 96 小时。

    在更新自定义域页面上选择机密版本的屏幕截图。

    警告

    这是一条仅限 Azure 门户的警告。 需要配置服务主体,使其对密钥保管库拥有 GET 权限。 要使用户能够在门户下拉列表中看到该证书,用户帐户必须对密钥保管库拥有 LIST 和 GET 权限。 如果用户没有这些权限,则会在门户中看到无法访问错误消息。 无法访问错误消息不会对证书自动轮换或任何 HTTPS 功能造成影响。 如果你不打算对证书或版本进行更改,则不需要对此错误消息采取任何措施。 若要更改此页面上的信息,请参阅提供对密钥保管库的权限,以将你的帐户添加到密钥保管库的 LIST 和 GET 权限。

  5. 使用你自己的证书时,无需进行域验证。 转到等待传播

验证域

如果你已有一个自定义域正在使用中,且它已映射到具有 CNAME 记录的自定义终结点,或者你使用的是自己的证书,请转到自定义域已映射到 Front Door。 否则,如果域的 CNAME 记录条目不再存在或包含 afdverify 子域,请继续转到“自定义域未映射到 Front Door”。

自定义域已通过 CNAME 记录映射到 Front Door

在 Front Door 的前端主机中添加自定义域时,已在域注册机构的 DNS 表中创建了一条 CNAME 记录,以便将该域映射到 Front Door 的默认 .azurefd.net 主机名。 如果该 CNAME 记录仍然存在,并且不包含 afdverify 子域,则 DigiCert 证书颁发机构将使用它来自动验证自定义域的所有权。

如果使用的是自己的证书,则无需验证域。

CNAME 记录应采用以下格式,其中 Name 是自定义域名,Value 是 Front Door 的默认 .azurefd.net 主机名:

名称 类型
<[www.contoso.com](www.contoso.com)> CNAME contoso.azurefd.net

有关 CNAME 记录的详细信息,请参阅创建 CNAME DNS 记录

如果 CNAME 记录采用正确的格式,DigiCert 会自动验证自定义域名,并为域名创建专用的证书。 DigitCert 不会向你发送验证电子邮件,并且你无需批准请求。 该证书有效期为一年,并会在过期前自动续订。 转到等待传播

自动验证通常要花费几分钟时间。 如果在一小时内未看到域完成验证,请创建一个支持票证。

注意

如果通过 DNS 提供商获得证书颁发机构授权 (CAA) 记录,则必须包含 DigiCert 作为一个有效的 CA。 CAA 记录允许域名所有者通过自己的 DNS 提供商指定哪些 CA 有权为其域名颁发证书。 如果某个 CA 收到具有 CAA 记录的域证书订单,但该 CA 未被列为授权的颁发者,则禁止向该域或子域颁发证书。 有关管理 CAA 记录的信息,请参阅管理 CAA 记录。 有关 CAA 记录工具,请参阅 CAA 记录帮助器

自定义域未映射到 Front Door

如果终结点的 CNAME 记录条目不再存在,或者它包含 afdverify 子域,请按照此步骤中的其余说明进行操作。

在自定义域上启用 HTTPS 后,DigiCert CA 会根据域的 WHOIS 注册者信息,通过联系域的注册者来验证域的所有权。 通过 WHOIS 注册中列出的电子邮件地址(默认)或电话号码进行联系。 必须先完成域验证,然后才能在自定义域上激活 HTTPS。 可在 6 个工作日内批准域。 自动取消 6 个工作日内未批准的请求。 DigiCert 域验证在子域级别工作。 你需要分别证明每个子域的所有权。

WHOIS 记录的屏幕截图。

DigiCert 还会将验证电子邮件发送到其他电子邮件地址。 如果 WHOIS 注册信息属于隐私,请验证是否可直接从以下任一地址进行审批:

admin@<your-domain-name.com> administrator@<your-domain-name.com> webmaster@<your-domain-name.com> hostmaster@<your-domain-name.com> postmaster@<your-domain-name.com>

应会在几分钟内收到如以下所示的电子邮件,要求你批准请求。 如果使用垃圾邮件筛选器,请将 no-reply@digitalcertvalidation.com 添加到其允许列表。 在某些情况下,DigiCert 可能无法从 WHOIS 注册人信息中获取域联系人以向你发送电子邮件。 如果未在 24 小时内收到电子邮件,请与 Microsoft 支持部门联系。

选择批准链接时,将定向到在线批准表单。 按表中的说明操作;有两种验证选项:

  • 可批准通过同一根域(例如 consoto.com)的同一帐户下的所有将来订单。 如果你打算为同一根域添加其他自定义域,建议使用此方法。

  • 可以只批准该请求中使用的特定主机名。 后续请求需要额外的批准。

批准后,DigiCert 会针对自定义域名完成证书创建。 该证书的有效期为一年。 如果在验证后添加或更新你的自定义域的 CNAME 记录,以映射到你的 Azure Front Door 默认主机名,则它在过期前将自动续订。

注意

托管证书自动续订要求自定义域通过 CNAME 记录直接映射到 Front Door 的默认 .azurefd.net 主机名。

等待传播

验证域名后,将需要长达 6-8 小时才能使自定义域 HTTPS 功能激活。 此过程完成后,Azure 门户中的自定义 HTTPS 状态会设置为“已启用” ,且自定义域对话框中的四个操作步骤会标记为完成。 自定义域现可使用 HTTPS。

操作进度

下表显示启用 HTTPS 时出现的操作进度。 启用 HTTPS 后,自定义域对话框中将出现四个操作步骤。 当每个步骤变为活动状态时,随着该步骤的不断进行,其下将显示更多子步骤详细信息。 并非所有这些子步骤都会执行。 步骤成功完成后,它旁边会显示一个绿色的复选标记。

操作步骤 操作子步骤详细信息
1. 提交请求 提交请求
正在提交 HTTPS 请求。
已成功提交 HTTPS 请求。
2. 域验证 如果域已通过 CNAME 映射到 Front Door 的默认 azurefd.net 前端主机,则会自动验证该域。 否则,将会向域的注册记录中列出的电子邮件(WHOIS 注册者)发送验证请求。 请尽快验证域。
已成功验证域所有权。
域所有权验证请求已过期(很可能是客户在 6 天内未响应)。 将不会在域中启用 HTTPS。 *
客户已拒绝域所有权验证请求。 将不会在域中启用 HTTPS。 *
3. 证书预配 证书颁发机构当前正在颁发在你的域中启用 HTTPS 所需的证书。
证书已颁发,并且当前正在为 Front Door 部署该证书。 此过程可能需要几分钟到一小时才能完成。
已成功为 Front Door 部署证书。
4. 完成 已成功在域中启用 HTTPS。

* 除非出现错误,否则不会显示此消息。

如果提交请求之前出现错误,则会显示以下错误消息:

We encountered an unexpected error while processing your HTTPS request. Please try again and contact support if the issue persists.

常见问题

  1. 谁是证书提供者?使用哪种类型的证书?

    Digicert 提供的专用/单一证书用于自定义域。

  2. 使用基于 IP 的 TLS/SSL 还是 SNI TLS/SSL?

    Azure Front Door 使用 SNI TLS/SSL。

  3. 如果我未收到 DigiCert 发来的域验证电子邮件,怎么办?

    如果自定义域的 CNAME 条目直接指向你的终结点主机名(并且你未使用 afdverify 子域名),则你不会收到域验证电子邮件。 验证会自动进行。 否则,如果你没有 CNAME 条目,并且在 24 小时内未收到电子邮件,请联系 Microsoft 支持部门。

  4. 使用 SAN 证书是否没有使用专用证书安全?

    SAN 证书遵循与专用证书相同的加密和安全标准。 所有颁发的 TLS/SSL 证书都使用 SHA-256 来增强服务器安全性。

  5. 我是否需要通过我的 DNS 提供商获得证书颁发机构授权记录?

    否,当前无需具备证书颁发机构授权记录。 但是,如果你确实有一个,则必须包含 DigiCert 作为一个有效的 CA。

清理资源

在前面的步骤中,你在自定义域上启用了 HTTPS 协议。 如果你不再想要为自定义域使用 HTTPS,可以执行下列步骤来禁用 HTTPS:

禁用 HTTPS 功能

  1. Azure 门户中,浏览到你的 Azure Front Door 配置。

  2. 在前端主机列表中,选择要禁用 HTTPS 的自定义域。

  3. 选择“已禁用”以禁用 HTTPS,然后选择“保存”。

等待传播

禁用自定义域 HTTPS 功能后,最多可能需要 6-8 小时才会生效。 此过程完成后,Azure 门户中的自定义 HTTPS 状态会设置为“已禁用”,且自定义域对话框中的三个操作步骤会标记为完成。 自定义域不再能够使用 HTTPS。

操作进度

下表显示在禁用 HTTPS 时发生的操作进程。 禁用 HTTPS 后,自定义域对话框中将出现三个操作步骤。 每个步骤变为活动状态时,该步骤下会显示更多详细信息。 步骤成功完成后,它旁边会显示一个绿色的复选标记。

操作进度 操作详细信息
1. 提交请求 提交请求
2. 取消证书预配 删除证书
3. 完成 已删除证书

后续步骤

要了解如何为 Front Door 设置地区筛选策略,请继续学习下一教程。