无法为Traffic Manager创建App Service托管证书:缺失CNAME记录
问题描述
配置Traffic Manager后部署了两个App Service实例:
- 西欧区域的第一个实例配置完全正常,成功为Traffic Manager域名创建了托管证书
- 为北欧区域的第二个实例执行相同操作时,收到错误提示:
Hostname not eligible for App Service Managed Certificates creation. Ensure that your domain [trafficmngr-name].trafficmanager.net has an active CNAME record which is set to [app-service-2].azurewebsites.net.
当前环境未使用自定义域名,所有配置均为Azure托管式,无法自行配置CNAME记录,且第一个实例未配置CNAME却正常运行。已对比两个实例的XML模板,除名称外完全一致。
附相关截图:
- Traffic Manager端点截图
- 错误信息截图
问题原因与解决建议
核心原因
这是Azure App Service托管证书针对Traffic Manager域名的区域验证逻辑限制:
- 西欧实例能成功创建证书,是因为Traffic Manager域名默认会将流量路由到已正常运行的端点,Azure内部自动完成了该区域的域名关联验证
- 北欧实例作为第二个端点,Traffic Manager并未默认将域名指向它,导致Azure无法自动完成该区域的域名所有权验证,因此抛出CNAME配置要求的错误
解决步骤
- 临时调整Traffic Manager路由策略
- 将路由策略改为优先级模式,把北欧区域的App Service实例设置为最高优先级
- 等待5-10分钟让路由配置生效,此时Traffic Manager域名会临时指向北欧实例
- 创建托管证书
- 再次尝试为北欧实例的Traffic Manager域名创建托管证书,此时Azure能完成内部验证,证书可正常生成
- 恢复原路由策略
- 证书创建完成后,将Traffic Manager路由策略改回原来的配置(如加权、性能等),不影响两个实例的证书使用
补充说明
- 两个实例的XML模板一致但结果不同,是因为模板仅记录静态配置,不包含Traffic Manager动态路由状态这类运行时信息
- 无需手动配置CNAME,通过临时调整路由策略触发Azure内部的验证流程即可解决问题
内容的提问来源于stack exchange,提问作者papadi
相关产品推荐
相关产品推荐

