你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 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 可确保经由 TLS/SSL 加密的安全数据传输。 当 Web 浏览器使用 HTTPS 连接到网站时,会验证网站的安全证书并验证其合法性,从而提供安全保障,保护 Web 应用程序免受恶意攻击。
默认情况下,Azure Front Door 在其默认主机名上支持 HTTPS(如 https://contoso.azurefd.net
)。 但是,需要为 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 证书
若要在 Front Door(经典)自定义域上启用 HTTPS,需要 TLS/SSL 证书。 可以使用由 Azure Front Door 管理的证书或自己的证书。
选项 1(默认):使用 Front Door 托管的证书
如果使用由 Azure Front Door 管理的证书,只需进行少量设置更改便可启用 HTTPS。 Azure Front Door 会处理所有证书管理任务,包括采购和续订。 如果自定义域已映射到 Front Door 的默认前端主机 ({hostname}.azurefd.net
),则不需要进一步操作。 否则,需要通过电子邮件验证域所有权。
在自定义域上启用 HTTPS:
在 Azure 门户中,转到 Front Door 配置文件。
从前端主机列表中选择要启用 HTTPS 的自定义域。
在“自定义域 HTTPS”下,选择“已启用”,然后选择“Front Door 托管”作为证书源。
选择“保存”。
继续验证域。
注意
- Azure Front Door 托管证书需要强制性地遵循 DigiCert 的 64 字符限制。 如果超出该限制,验证将失败。
- 顶点域/根域(例如 contoso.com)不支持通过 Front Door 托管证书启用 HTTPS。 这种情况可以使用自己的证书(请参阅选项 2)。
选项 2:使用自己的证书
可以通过与 Azure Key Vault 集成使用自己的证书。 确保证书来自 Microsoft 受信任的 CA 列表,并具有完整的证书链。
准备你的密钥保管库帐户和证书
- 在 Front Door 所在的 Azure 订阅中创建一个密钥保管库帐户。
- 如果启用了网络访问限制,需要将密钥保管库配置为允许受信任的 Microsoft 服务绕过防火墙。
- 使用“保管库访问策略”权限模型。
- 将证书上传为证书对象,而非上传为机密。
注意
Front Door 不支持带椭圆曲线 (EC) 加密算法的证书。 证书必须有完整的证书链(包括叶证书和中间证书),根 CA 必须包含在 Microsoft 受信任 CA 列表中。
注册 Azure Front Door
使用 Azure PowerShell 或 Azure CLI 在 Microsoft Entra ID 中注册 Azure Front Door 服务主体。
Azure PowerShell
如果需要,安装 Azure PowerShell。
运行下面的命令:
New-AzADServicePrincipal -ApplicationId "ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037"
Azure CLI
如果需要,安装 Azure CLI。
运行下面的命令:
az ad sp create --id ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037
授予 Azure Front Door 对 Key Vault 的访问权限
在密钥保管库帐户中,选择“访问策略”。
选择“创建”以创建新的访问策略。
在“机密权限”中,选择“获取”。
在“证书权限”中,选择“获取”。
在“选择主体”中搜索 ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037,然后选择“Microsoft.Azure.Frontdoor”。 选择下一步。
在“应用程序”中,选择“下一步”。
在“查看 + 创建”中,选择“创建”。
注意
如果密钥保管库设有网络访问限制,请允许受信任的 Microsoft 服务访问密钥保管库。
选择要部署的 Azure Front Door 的证书
在门户中返回到 Front Door。
选择要启用 HTTPS 的自定义域。
在证书管理类型下,选择“使用我自己的证书”。
选择密钥保管库、机密和机密版本。
注意
若要启用自动证书轮换,请将机密版本设置为“最新”。 如果选择了特定版本,需要手动更新才能进行证书轮换。
警告
确保服务主体对 Key Vault 具有 GET 权限。 要在门户下拉列表中看到该证书,用户帐户必须对密钥保管库拥有 LIST 和 GET 权限。
如果使用的是自己的证书,则无需验证域。 转至等待传播。
验证域
如果自定义域映射到具有 CNAME 记录的自定义终结点,或使用的是自己的证书,请转到自定义域已映射到 Front Door。 否则,按照自定义域不映射到 Front Door 中的说明操作。
自定义域已通过 CNAME 记录映射到 Front Door
如果 CNAME 记录仍然存在且不包含 afdverify 子域,DigiCert 会自动验证自定义域的所有权。
CNAME 记录应采用以下格式:
名称 | 类型 | 值 |
---|---|---|
<[www.contoso.com](www.contoso.com)> | CNAME | contoso.azurefd.net |
有关 CNAME 记录的详细信息,请参阅创建 CNAME DNS 记录。
如果 CNAME 记录正确,DigiCert 会自动验证自定义域并创建专用证书。 该证书有效期为一年,并会在过期前自动续订。 转到等待传播。
注意
如果通过 DNS 提供商获得证书颁发机构授权 (CAA) 记录,则必须包含 DigiCert 作为一个有效的 CA。 有关详细信息,请参阅管理 CAA 记录。
自定义域未映射到 Front Door
如果终结点的 CNAME 记录条目不再存在,或者它包含 afdverify 子域,请按照这些说明操作。
在自定义域上启用 HTTPS 后,DigiCert 会通过 WHOIS 注册中列出的电子邮件或电话联系域的注册者来验证所有权。 需要在六个工作日内完成域验证。 DigiCert 域验证在子域级别工作。
如果 WHOIS 注册者信息是私密的,DigiCert 还会向以下地址发送验证电子邮件:
- 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>
你应该会收到一封电子邮件,请求你批准相关请求。 如果未在 24 小时内收到电子邮件,请与 Microsoft 支持部门联系。
请求获批后,DigiCert 完成证书创建。 证书有效期为一年,如果 CNAME 记录映射到 Azure Front Door 的默认主机名,会自动重新续订证书。
注意
托管证书自动续订要求自定义域通过 CNAME 记录直接映射到 Front Door 的默认 .azurefd.net 主机名。
等待传播
验证域名后,最久需要 6-8 小时等待自定义域 HTTPS 功能激活。 流程完成后,Azure 门户中的自定义 HTTPS 状态设置为“已启用”。
操作进度
下表显示了启用 HTTPS 时的操作进度:
操作步骤 | 操作子步骤详细信息 |
---|---|
1. 提交请求 | 提交请求 |
正在提交 HTTPS 请求。 | |
HTTPS 请求成功提交。 | |
2. 域验证 | 如果域已通过 CNAME 映射到默认的 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.
常见问题
谁是证书提供者?使用哪种类型的证书?
DigiCert 提供的专用/单一证书用于自定义域。
使用基于 IP 的 TLS/SSL 还是 SNI TLS/SSL?
Azure Front Door 使用 SNI TLS/SSL。
如果我未收到 DigiCert 发来的域验证电子邮件,怎么办?
如果自定义域的 CNAME 条目直接指向你的终结点主机名(并且你未使用 afdverify 子域名),则你不会收到域验证电子邮件。 验证会自动进行。 如果未显示 CNAME 条目,且在 24 小时内未收到电子邮件,请联系 Microsoft 支持部门。
使用 SAN 证书是否没有使用专用证书安全?
SAN 证书遵循与专用证书相同的加密和安全标准。 所有颁发的 TLS/SSL 证书都使用 SHA-256 来增强服务器安全性。
我是否需要通过我的 DNS 提供商获得证书颁发机构授权记录?
否,当前无需具备证书颁发机构授权记录。 但是,如果你确实有一个,则必须包含 DigiCert 作为一个有效的 CA。
清理资源
在自定义域上启用 HTTPS:
禁用 HTTPS 功能
在 Azure 门户中,转到 Azure Front Door 配置。
选择要禁用 HTTPS 的自定义域。
选择“已禁用”,然后选择“保存”。
等待传播
禁用自定义域 HTTPS 功能后,最久可能需要 6-8 小时后生效。 相关流程完成后,Azure 门户中的自定义 HTTPS 状态设置为 “已禁用”。
操作进度
下表显示了禁用 HTTPS 时的操作进度:
操作进度 | 操作详细信息 |
---|---|
1. 提交请求 | 提交请求 |
2. 取消证书预配 | 删除证书 |
3. 完成 | 已删除证书 |
后续步骤
要了解如何为 Front Door 设置地区筛选策略,请继续学习下一教程。