应用服务托管证书更改 - 2025 年 7 月和 2025 年 11 月更新

本文总结了 2025 年 7 月和 2025 年 11 月引入的应用服务托管证书(ASMC)的更新。 随着 2025 年 11 月更新,ASMC 现在仍受支持,即使网站不可公开访问,但前提是满足所有其他要求。 下面列出了有关要求、异常和验证步骤的详细信息。

2025 年 11 月更新

从 2025 年 11 月开始,应用服务现在允许 DigiCert 对 https://<hostname>/.well-known/pki-validation/fileauth.txt 终结点的请求,即使站点阻止公共访问也是如此。 当 DigiCert 尝试访问验证终结点时, 应用服务前端 会显示令牌,请求将在前端层终止。 DigiCert 的请求不会到达运行应用程序的 工作进程

此行为现在是 ASMC 在颁发初始证书创建和续订时的默认行为。 客户无需专门允许 DigiCert 的 IP 地址。

异常和不支持的方案

此更新解决了限制公共访问的大多数方案,包括应用服务身份验证、禁用公共访问、IP 限制、专用终结点和客户端证书。 但是,仍需要公共 DNS 记录。 例如,使用专用终结点和专用 DNS 上的自定义域的网站无法验证域所有权并获取证书。

即使现在所有验证都依赖于 HTTP 令牌验证并允许 DigiCert 请求通过,ASMC 仍不支持某些配置:

  • 配置为流量管理器后面的“嵌套”或“外部”终结点的站点。 仅支持“Azure”终结点。
  • 不支持为以 *.trafficmanager.cn 结尾的域请求的证书。

Testing

客户可以通过尝试为其站点创建一个配置来轻松测试其站点的配置或设置是否支持 ASMC。 如果初始请求成功,并且满足所有要求,同时站点没有被列入不支持的场景,那么续期请求也应该正常有效。

2025 年 7 月更新

自 2025 年 7 月 28 日起,由于 DigiCert 迁移到新的验证平台,Azure 应用服务托管证书(ASMC)会受到新的颁发和续订要求。 这种变化是由整个行业范围内遵循多视角发行验证(MPIC)推动的。

有关 DigiCert 中基础更改的详细说明,请参阅 托管传输层安全性 (TLS) 功能的更改

验证方法更新:ASMC 现在对顶点和子域使用 HTTP 令牌验证。 以前,子域是使用 CNAME 记录进行验证的,该记录不需要公共访问。 使用 HTTP 令牌时,DigiCert 必须访问 https://<hostname>/.well-known/pki-validation/fileauth.txt 应用上的终结点来验证域所有权。

应用服务会自动将所需的令牌置于正确的路径进行验证。 此过程适用于初始证书颁发和续订,这意味着:

  • 请求 ASMC 或证明域所有权的客户体验保持不变。
  • ASMC 创建或续订的所有 API 和 CLI 请求有效负载都不受影响。
  • 客户无需执行任何操作即可放置或管理令牌。

重要

虽然应用服务在续订期间继续自动处理令牌放置,但 DigiCert 仍必须访问应用上的验证终结点。 续订时仍需要保留公共访问权限。 如果应用不可公开访问,即使令牌正确放置,续订也会失败。

截至 2025 年 11 月,受影响的方案

如果您的某些条件导致无法创建或续订 ASMC,则无法:

  • 站点是 Azure 流量管理器 的“嵌套”或“外部”端点:
    • 仅支持在流量管理器上的「Azure 终结点」进行证书创建和续订。
    • 不支持“嵌套终结点”和“外部终结点”。
  • 颁发给 *.trafficmanager.cn 域的 证书:
    • 不支持创建或续订 *.trafficmanager.cn 域的证书。

现有证书在到期前保持有效(最长六个月),但如果配置不受支持,则不会自动续订。

注释

除了新更改之外,所有现有的 ASMC 要求仍适用。 有关详细信息,请参阅应用服务托管证书文档

确定截至 2025 年 11 月受影响的资源

可以使用 Azure Resource Graph (ARG) 查询来帮助识别每个方案中可能受影响的资源。 这些查询被提供作为起点,可能无法捕获每个配置。 检查您的环境中是否有独特的设置或自定义配置。

方案 1:站点是 Azure 流量管理器 "嵌套" 或 "外部" 端点

如果你的应用服务使用通过 Azure 流量管理器 路由的自定义域,并且配置文件包含 external嵌套终结点,可能会受到影响。 在新的验证下,证书颁发或续订不支持这些终结点类型。

为了帮助识别订阅中受影响的流量管理器配置文件,我们建议使用 Microsoft 团队开发的 以下 PowerShell 脚本。 它会扫描含有非Azure端点的配置文件,并输出可能受影响的资源列表。

注释

要成功运行脚本,您至少需要对所有订阅拥有读取权限。

若要运行该脚本,请执行以下操作:

  1. 从 GitHub 下载 PowerShell 脚本。
  2. 打开 PowerShell 并导航到脚本位置。
  3. 运行脚本。
    .\TrafficManagerNonAzureEndpoints.ps1
    

方案 2:颁发给 *.trafficmanager.cn 域的 证书

此 ARG 查询可帮助你识别颁发给 *.trafficmanager.cn 域的应用服务托管证书(ASMC)。 此外,它还检查任何 Web 应用当前是否使用这些证书进行自定义域 SSL 绑定。 可以复制此查询,将其粘贴到 ARG 资源管理器中,然后单击“运行查询”以查看环境的结果。

// ARG Query: Identify App Service Managed Certificates (ASMC) issued to *.trafficmanager.cn domains 
// Also checks if any web apps are currently using those certificates for custom domain SSL bindings 
resources 
| where type == "microsoft.web/certificates" 
// Extract the certificate thumbprint and canonicalName (ASMCs have a canonicalName property) 
| extend  
    certThumbprint = tostring(properties.thumbprint), 
    canonicalName = tostring(properties.canonicalName) // Only ASMC uses the "canonicalName" property 
// Filter for certificates issued to *.trafficmanager.cn domains 
| where canonicalName endswith "trafficmanager.cn" 
// Select key certificate properties for output 
| project certName = name, certId = id, certResourceGroup = tostring(properties.resourceGroup), certExpiration = properties.expirationDate, certThumbprint, canonicalName 
// Join with web apps to see if any are using these certificates for SSL bindings 
| join kind=leftouter ( 
    resources 
    | where type == "microsoft.web/sites" 
    // Expand the list of SSL bindings for each site 
    | mv-expand hostNameSslState = properties.hostNameSslStates 
    | extend  
        hostName = tostring(hostNameSslState.name), 
        thumbprint = tostring(hostNameSslState.thumbprint) 
    // Only consider bindings for *.trafficmanager.cn custom domains with a certificate bound 
    | where tolower(hostName) endswith "trafficmanager.cn" and isnotempty(thumbprint) 
    // Select key site properties for output 
    | project siteName = name, siteId = id, siteResourceGroup = resourceGroup, thumbprint 
) on $left.certThumbprint == $right.thumbprint 
// Final output: ASMCs for *.trafficmanager.cn domains and any web apps using them 
| project certName, certId, certResourceGroup, certExpiration, canonicalName, siteName, siteId, siteResourceGroup

截至 2025 年 11 月的缓解指南

方案 1:该站点是 Azure 流量管理器 “嵌套”或“外部”终结点

仅支持“Azure 端点”。 ASMC 验证不支持“嵌套”和“外部”端点。

建议的缓解措施:

方案 2:颁发给 *.trafficmanager.cn 域的 证书

不支持域 *.trafficmanager.cn 证书。 如果应用依赖于此域并使用 ASMC,则需要使用自定义域和证书删除该依赖项并保护应用。

建议的步骤:

  1. 将自定义域添加到网站
    可以配置指向终结点的自定义域 trafficmanager.cn ,并使用自己的证书对其进行保护。

    重要

    如果站点限制公共访问,请不要使用 ASMC 来保护自定义域。 此方案受验证更改影响,将导致证书颁发或续订失败。

  2. 获取自定义域的证书
    可以使用满足您的安全性和操作要求的任何证书提供程序。 证书应与Azure 应用服务兼容,理想情况下存储在Azure 密钥保管库中,以便更轻松地管理。

  3. 将证书添加到站点

    小窍门

    确保 授权应用服务从 Key Vault 读取证书。 使用文档中列出的特定标识,而不是站点的托管标识。

  4. 创建自定义域绑定

  5. 删除 ASMC 上的其他依赖项

    • 自定义域 TLS/SSL 绑定
      确定 ASMC 是否主动用于 Web 应用的自定义域配置中的 TLS/SSL 绑定。 如果是,请按照上述步骤替换证书并更新绑定。

    • 应用程序代码中使用的证书
      证书可用于应用程序代码中用于身份验证等任务。 如果应用使用 WEBSITE_LOAD_CERTIFICATES 设置来加载 ASMC,请更新代码以改用新证书。

  6. 删除 ASMC 资源
    确认环境或服务不再依赖于 ASMC 后,请删除与站点关联的 ASMC。
    删除 ASMC 有助于防止意外重复使用,这可能会导致证书无法续订时服务停机。

常见问题 (FAQ)

为什么现在需要公共访问?
以前,需要公共访问,以便 DigiCert 可以在证书颁发和续订期间访问验证文件 https://<hostname>/.well-known/pki-validation/fileauth.txt

2025 年 11 月更新:ASMC 颁发不再需要公共访问。 应用服务现在在前端层截获 DigiCert 的验证请求,并在不公开应用的情况下提供令牌。 此行为是初始证书创建和续订的默认行为。 诸如正确的 DNS 配置等先决条件仍适用。

如果我允许列出 DigiCert IP 地址,该怎么办?
不再需要允许列出 DigiCert IP 地址。 2025 年 11 月的更新可确保 DigiCert 的请求不再到达应用程序的工作线程。 前端安全地处理验证,因此不需要 IP 允许列表。

我仍然可以使用 CNAME 记录吗?
是的,你仍然可以将 CNAME 记录用于域名系统(DNS)路由和验证域所有权。

*.chinacloudsites.cn 的证书是否受影响?
否,这些更改不适用于 *.chinacloudsites.cn 证书。 ASMC 仅颁发给客户的自定义域,而不是默认主机名。

其他资源