Azure CDN 端点中的裸域具有错误的 HTTPS 证书名称

问题描述

我在 Azure 中有一个站点页面由 Azure Functions 生成,但对于给定的 URL 生成页面将始终相同,因此我将其放在 CDN 端点之后。我向端点添加自定义域:www.example.com 是主域,还有一个裸域版本 example.com,但对它的任何请求都被重定向www.example.com。任何 http 请求也会重定向https。两种重定向都是通过从 Azure 函数返回重定向结果来执行的。

enter image description here

因此,http://example.comhttp://www.example.com 都正确重定向https://www.example.com。如果有人试图访问 https://example.com,就会出现问题。为此网址提供的证书是 *.azureedge.net,并且浏览器可预见地显示警告消息(如果指示继续 - 它会收到重定向并在此之后正常工作)。

当我尝试在 Custom HTTPS 上启用 example.com 时 - 我收到错误 Enabling Https with CDN Managed Certificate is not supported anymore for apex (root) domains.

有什么办法可以解决这个问题,也许可以指示在 DNS 级别从 example.com 重定向www.example.com?我已经看到使用 Azure 中可用的替代 CDN 的建议,但我还没有准备好走这条路。

解决方法

如您所见,截至 2021 年 4 月 Managed certificates are not supported on Apex domains。目前唯一支持的解决方法是上传您自己的证书(免费或购买)或通过 KeyVault 购买。

话虽如此,杰克·特雷西 (Jack Tracey) 在 unsupported manner 中汇总了一系列说明以实现此目的。