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

为 Web 应用创建并管理 Azure 应用服务证书

本文介绍如何创建 Azure 应用服务证书并管理证书(例如,续订、同步和删除)。 获得 Azure 应用服务证书后,可以将其导入到 Azure 应用服务应用中。 Azure 应用服务证书是由 Azure 托管的一种专用证书。 它结合了自动化证书管理的简单性以及续订和导出选项的灵活性。

如果从 Azure 购买应用服务证书,Azure 将管理以下任务:

  • 处理 GoDaddy 的购买流程。
  • 对证书执行域验证。
  • 将证书保留在 Azure Key Vault 中。
  • 管理证书续订
  • 在应用服务应用中自动将证书与导入的副本同步。

注意

将证书上传到应用后,证书将存储在与应用服务计划的资源组、区域和操作系统组合(在内部称为“Web 空间”)绑定的部署单元中。 这使得相应证书可供相同资源组和区域组合中的其他应用访问。 上传或导入到应用服务的证书与同一部署单元中的应用服务共享。

先决条件

注意

目前,Azure 国家云不支持应用服务证书。

购买并配置 Azure 应用服务证书

开始购买证书

  1. 转到应用服务证书创建页面,开始购买应用服务证书。

    注意

    从 Azure 购买的应用服务证书由 GoDaddy 颁发。 对于某些域,必须通过创建值为 0 issue godaddy.comCAA 域记录显式允许 GoDaddy 作为证书颁发者

    “创建应用服务证书”窗格的屏幕截图,其中包含购买选项。

  2. 若要帮助配置证书,请使用下表。 完成后,依次选择“查看 + 创建”、“创建”。

    设置 说明
    订阅 要与证书关联的 Azure 订阅。
    资源组 将包含证书的资源组。 例如,可以创建新资源组,也可以选择与应用服务应用相同的资源组。
    SKU 确定要创建的证书类型是标准证书还是通配符证书
    裸域主机名 指定根域。 颁发的证书可同时保护根域和 www 子域。 在颁发的证书中,“公用名”字段指定根域,“使用者可选名称”字段指定 www 域。 若要仅保护子域,请指定子域的完全限定域名,例如 mysubdomain.contoso.com
    证书名称 应用服务证书的易记名称。
    启用自动续订 选择是否在到期前自动续订证书。 每次续订将证书过期时间延长一年,并收取订阅费用。
  3. 部署完成后,选择“转到资源”。

在 Azure Key Vault 中存储证书

Key Vault 是一项 Azure 服务,可帮助保护云应用程序和服务使用的加密密钥和机密。 对于应用服务证书,所选存储为 Key Vault。 完成证书购买过程后,必须先完成几个步骤,然后才能开始使用此证书。

  1. “应用服务证书”页上,选择证书。 在证书菜单上,选择“证书配置”>“步骤 1: 存储”。

    “证书配置”窗格的屏幕截图,其中选中了“步骤 1:存储”。

  2. 在“密钥保管库状态”页上,选择“从密钥保管库选择”。

  3. 如果创建新保管库,请根据下表设置保管库,并确保使用与应用服务应用相同的订阅和资源组。

    设置 说明
    资源组 建议:与应用服务证书相同的资源组。
    密钥保管库名称 仅使用字母数字字符和短划线的唯一名称。
    区域 与应用服务应用相同的位置。
    定价层 有关信息,请参阅 Azure Key Vault 定价详细信息
    保留已删除保管库的天数 删除后的天数,在此期间对象保持为可恢复状态(请参阅 Azure 密钥保管库软删除概述)。 设置一个介于 7 和 90 之间的值。
    清除保护 防止手动清除被软删除的对象。 启用此选项将强制所有已删除的对象在整个保留期内保持软删除状态。
  4. 选择“下一步”,然后选择“保管库访问策略”。 目前,Azure 应用服务证书仅支持“密钥保管库”访问策略,而不支持 RBAC 模型。

  5. 依次选择“查看 + 创建”、“创建”。

  6. 创建密钥保管库后,不要选择“转到资源”,而是等待“从 Azure 密钥保管库选择密钥保管库”重新加载。

  7. 选择“选择”。

  8. 选择保管库后,关闭“Key Vault 存储库”页。 “步骤1: 存储”选项应显示绿色复选标记表示成功。 保持页面处于打开状态,执行下一步骤。

确认域所有权

  1. 在上一部分的同一“证书配置”页中,选择“步骤 2: 验证”。

    “证书配置”窗格的屏幕截图,其中选中了“步骤 2:验证”。

  2. 选择“应用服务验证”。 但是,由于之前已根据先决条件将该域映射到 Web 应用,因此该域已经过验证。 若要完成此步骤,只需选择“验证”,然后选择“刷新”,直到显示“证书为域已验证”消息。

支持以下域验证方法:

方法 说明
应用服务验证 当域已映射到同一订阅中的应用服务应用时,这是最方便的选项,因为应用服务应用已经验证域所有权。 查看确认域所有权中的最后一步。
域验证 确认从 Azure 购买的应用服务域。 Azure 会自动为你添加验证 TXT 记录,并完成该过程。
邮件验证 通过向域管理员发送电子邮件来确认域。 选择此选项时会提供相应说明。
手动验证 使用 DNS TXT 记录或 HTML 页面确认域,这只适用于遵循以下说明的“标准”证书。 选择选项后会提供这些步骤。 HTML 页面选项不适用于启用了“仅 HTTPS”的 Web 应用。 对于通过根域(即“contoso.com”)或子域(即“www.contoso.com”、“test.api.contoso.com”)的 DNS TXT 记录进行域验证,无论证书 SKU 是什么,都需要在根域级别添加 TXT 记录,并使用“@”作为名称,使用域验证令牌作为 DNS 记录中的值。

重要

如果是“标准”证书,则会获得所请求的顶级域www 子域的证书(例如,contoso.comwww.contoso.com)。 但是,“Azure 应用服务验证”和“手动验证”都使用 HTML 页面验证。当颁发、重新生成密钥或续订证书时,这种验证方法不支持 www 子域。 如果是“标准”证书,则使用“域验证”和“邮件验证”以包含证书中 www 子域和所请求的顶级域。

证书通过域验证后,就可以将其导入到 Azure 应用服务应用中

续订应用服务证书

默认情况下,应用服务证书具有一年的有效期。 在到期日期之前和即将到期时,可以自动或手动续订应用服务证书,以一年为增量。 续订过程会有效地提供一个新的应用服务证书,到期日期从现有证书的到期日期延长一年。

注意

从 2021 年 9 月 23 日开始,如果在过去 395 天内未验证域,则应用服务证书需要在续订或重新生成密钥期间进行域验证。 在续订或重新生成密钥期间,新证书订单将保持“待颁发”模式,直到完成域验证。

与免费的 Azure 应用服务托管证书不同,应用服务证书的域重新验证不会自动进行。 未能验证域所有权会导致续订失败。 有关如何验证应用服务证书的详细信息,请查看确认域所有权

续订过程要求应用服务的已知服务主体拥有对密钥保管库的所需访问权限。 通过 Azure 门户导入应用服务证书时,将为你设置这些权限。 请确保不要从密钥保管库中删除这些权限。

  1. 若要随时更改应用服务证书的自动续订设置,请在“应用服务证书”页中选择证书。

  2. 在左侧菜单中,选择“自动续订设置”。

  3. 选择“开”或“关”,然后选择“保存”。

    如果开启自动续订,则证书可在到期前 32 天自动续订。

    指定证书自动续订设置的屏幕截图。

  4. 若要改为手动续订证书,请选择“手动续订”。 可以请求在到期前 60 天手动续订证书,但最长到期日期为 397 天

  5. 续订操作完成后,选择“同步”。

    同步操作会自动更新应用服务中证书的主机名绑定,而不会导致应用停机。

    注意

    如果未选择“同步”,应用服务会在 24 小时内自动同步证书。

为应用服务证书重新生成密钥

如果你认为证书的私钥已泄露,则可以为证书重新生成密钥。 此操作将使用证书颁发机构颁发的新证书滚动更新现有证书。

  1. “应用服务证书”页上,选择证书。 从左侧菜单中,选择“重新生成密钥并同步”。

  2. 若要开始该过程,请选择“重新生成密钥”。 此过程需要 1 - 10 分钟才能完成。

    为应用服务证书重新生成密钥的屏幕截图。

  3. 可能还需要重新确认域所有权

  4. 重新生成密钥操作完成后,选择“同步”。

    同步操作会自动更新应用服务中证书的主机名绑定,而不会导致应用停机。

    注意

    如果未选择“同步”,应用服务会在 24 小时内自动同步证书。

导出应用服务证书

由于应用服务证书是 Key Vault 机密,因此可以将副本导出为 PFX 文件,并将其用于其他 Azure 服务或 Azure 之外的服务。

重要

导出的证书是非托管项目。 应用服务证书续订时,应用服务不会同步此类项目。 必须在必要时导出并安装续订的证书。

  1. “应用服务证书”页上,选择证书。

  2. 在左侧菜单中,选择“导出证书”。

  3. 选择“打开 Azure 密钥保管库密钥”。

  4. 选择证书的当前版本。

  5. 选择“下载为证书”。

下载的 PFX 文件是一个原始 PKCS12 文件,其中包含公共证书和专用证书,其导入密码为空字符串。 你可以通过将密码字段留空,在本地安装该文件。 无法将文件按原样上传到应用服务,因为该文件不受密码保护

删除应用服务证书

如果删除应用服务证书,则删除操作是不可逆的,也是最终的。 结果是证书被撤销,应用服务中使用此证书的任何绑定都将失效。

  1. “应用服务证书”页上,选择证书。

  2. 在左侧菜单中,选择“概述”>“删除”。

  3. 确认框打开后,输入证书名称,然后选择“确定”。

常见问题

我的应用服务证书在“密钥保管库”中没有任何值

Azure 应用服务证书很可能尚未经过域验证。 直到确认了域所有权后,才能使用 Azure 应用服务证书。 作为密钥保管库密钥,它维护一个 Initialize 标记及其值,而 content-type 保持为空。 当确认了域所有权之后,密钥保管库密钥显示一个值和 content-type,且标记变为 Ready

无法使用 PowerShell 导出 Azure 应用服务证书

Azure 应用服务证书很可能尚未经过域验证。 直到确认了域所有权后,才能使用 Azure 应用服务证书。

Azure 应用服务证书创建过程对现有的密钥保管库进行哪些更改?

创建过程会进行以下更改:

  • 在保管库中添加两条访问策略:
    • Microsoft.Azure.WebSites(或 Microsoft Azure App Service
    • Microsoft 证书经销商 CSM 资源提供程序(或 Microsoft.Azure.CertificateRegistration
  • 在名为“AppServiceCertificateLock”的保管库中创建删除锁,防止意外删除密钥保管库。

更多资源