You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在App Service与Front Door共用自定义域名及Azure托管证书?

同一自定义域名下Azure Front Door与App Service托管证书共存及主机名匹配问题

问题背景

我有一个配置了自定义域名和Azure托管证书的App Service,运行多年正常。近期添加了Front Door配置文件,为其配置了同一自定义域名及Azure Front Door生成的证书。同时更新了域名DNS记录:将主域名的A记录设为指向AFD资源的ALIAS记录,www子域名的CNAME记录指向AFD端点。

但近期Azure在App Service上报告错误:

Auto-Renewal Failed... for Apex domain we must have the A record mapped to the 
webapp IP. For subdomain, we must have CNAME mapped to the webapp name.

这看起来部署Front Door后,Web App本身的自定义域名证书自动续期失败了。但微软官方建议在反向代理与其后端Web应用之间保留原始HTTP主机名,同时还指出:

对于HTTPS连接,Azure Front Door要求源服务器出示由有效证书颁发机构(CA)签发的、主题名称与源主机名匹配的证书。

现在有两个疑问:

  1. 能否同时在AFD和App Service上为同一自定义域名配置Azure托管证书?
  2. 如果不能,如何遵循最佳实践确保用户请求的原始HTTP主机名与App Service主机名匹配?

问题解答

1. 能否同时配置同一域名的Azure托管证书?

不能直接同时配置,核心冲突点在于两种托管证书的DNS验证要求互斥:

  • App Service的Azure托管证书续期时,会强制检查DNS记录:主域名必须指向App Service的IP,子域名必须指向App Service的默认域名(如xxx.azurewebsites.net)。你当前将DNS指向AFD,导致验证失败,触发证书续期错误。
  • AFD的托管证书则要求DNS指向AFD端点,两者的DNS验证条件无法同时满足。

2. 最佳实践:保留原始主机名并解决证书验证问题

推荐两种可行方案,兼顾AFD的后端证书要求和业务对原始主机名的需求:

方案一:为App Service使用第三方自定义证书

  • 购买由可信CA签发的包含自定义域名的证书,上传至App Service并绑定到自定义域名。
  • 这种方式不依赖App Service的DNS验证逻辑,只要证书本身有效且主题匹配自定义域名,AFD就能通过后端HTTPS验证。
  • 后续可通过Azure Key Vault自动管理证书续期,避免手动操作。

方案二:用App Service默认域名证书配合主机头转发

  • 移除App Service上绑定的自定义域名,仅保留默认的xxx.azurewebsites.net域名,并为该默认域名配置Azure托管证书。
  • 在AFD的后端池配置中,将后端主机头设置为你的自定义域名(即用户请求的原始主机名)。
  • 在App Service的应用设置中添加WEBSITE_HOSTNAME配置项,值为你的自定义域名,确保App Service能够识别并处理这个原始主机名。
  • 此方案下,AFD与后端App Service通信时验证默认域名的证书有效性,同时App Service能接收到用户请求的原始自定义主机名,满足业务逻辑需求。

额外注意事项

  • 用户访问的HTTPS连接始终由AFD终止,确保AFD的自定义域名证书有效即可。
  • 若业务需要App Service直接处理自定义域名请求,可考虑为App Service单独配置一个备用子域名(如app.yourdomain.com),绑定托管证书,主域名则通过AFD转发。

内容的提问来源于stack exchange,提问作者jamesfm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:27:19