本文总结了 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 流量管理器路由的自定义域,则配置文件包含 外部 或 嵌套终结点时,可能会受到影响。 在新的验证下,证书颁发或续订不支持这些终结点类型。
为了帮助识别订阅中受影响的流量管理器配置文件,我们建议使用此由Microsoft团队开发的 PowerShell 脚本 。 它会扫描包含非 Azure 终结点的配置文件,并输出可能受影响的资源列表。
注释
至少需要读者访问所有订阅才能成功运行脚本。
若要运行该脚本,请执行以下操作:
- 从 GitHub 下载 PowerShell 脚本。
- 打开 PowerShell 并导航到脚本位置。
- 运行脚本。
.\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 验证不支持“嵌套”和“外部”终结点。
建议的缓解措施:
- 切换到 Azure 终结点或使用受自定义证书保护的自定义域。
- 有关将应用服务用作 Azure 流量管理器终结点的指导,请参阅 应用服务和流量管理器配置文件。
方案 2:颁发给 *.trafficmanager.cn 域的 证书
不支持域 *.trafficmanager.cn 证书。 如果应用依赖于此域并使用 ASMC,则需要使用自定义域和证书删除该依赖项并保护应用。
建议的步骤:
将自定义域添加到网站
可以配置指向终结点的自定义域trafficmanager.cn,并使用自己的证书对其进行保护。- 如果自定义域尚未推出或当前未提供流量,请参阅 为应用设置自定义域名。
- 如果域已处于活动状态且为流量提供服务,请参阅 迁移活动域。
重要
如果站点限制公共访问,请不要使用 ASMC 来保护自定义域。 此方案受验证更改影响,将导致证书颁发或续订失败。
获取自定义域的证书
可以使用满足安全性和作要求的任何证书提供程序。 证书应与 Azure 应用服务兼容,理想情况下存储在 Azure Key Vault 中,以便更轻松地管理。将证书添加到站点
小窍门
确保 授权应用服务从 Key Vault 读取证书。 使用文档中列出的特定标识,而不是站点的托管标识。
创建自定义域绑定
删除 ASMC 上的其他依赖项
自定义域 TLS/SSL 绑定
确定 ASMC 是否主动用于 Web 应用的自定义域配置中的 TLS/SSL 绑定。 如果是,请按照上述步骤替换证书并更新绑定。应用程序代码中使用的证书
证书可用于应用程序代码中用于身份验证等任务。 如果应用使用WEBSITE_LOAD_CERTIFICATES设置来加载 ASMC,请更新代码以改用新证书。
删除 ASMC 资源
确认环境或服务不再依赖于 ASMC 后,请删除与站点关联的 ASMC。
删除 ASMC 有助于防止意外重复使用,这可能会导致证书无法续订时服务停机。
常见问题 (FAQ)
为什么现在需要公共访问?
由于 MPIC 符合性,应用服务将迁移到 Http 令牌验证,以便所有 ASMC 创建和续订请求。 DigiCert 必须通过访问应用上的特定终结点来验证域所有权。 仅当应用可公开访问时,才能使用 Http 令牌成功验证。
我仍然可以使用 CNAME 记录吗?
是的,你仍然可以将 CNAME 记录用于域名系统(DNS)路由和验证域所有权。
如果我允许列出 DigiCert IP 地址,该怎么办?
允许列出 DigiCert 的域验证 IP 可以作为临时解决方法。 但是,Microsoft无法保证这些 IP 不会更改。 DigiCert 可能会在没有通知的情况下更新它们,Microsoft不维护这些 IP 的文档。 客户负责监视和维护此配置。
*.chinacloudsites.cn 的证书是否受影响?
否,这些更改不适用于 *.chinacloudsites.cn 证书。 ASMC 仅颁发给客户的自定义域,而不是默认主机名。