无需手动配置证书即可重定向顶级域 HTTPS 请求

Chr*_*ris 5 cdn azure azure-storage azure-dns

我正在尝试使用自定义域和 HTTPS 在 Azure 存储上托管一个静态网站。

我已经创建了一个存储帐户,上传了我的文件,并启用了静态站点托管。该站点在<foo>.web.core.windows.netAzure 提供的域中运行良好。

我已经为站点创建了一个 CDN 端点,源主机名设置为 Azure 提供的主要端点,为我的www子域添加了一个自定义域,为其配置了一个 CDN 管理的证书,并添加了一个规则来将非 HTTPS 请求重定向到https://www.<my-domain>.com. 这也很有效。

现在我希望我的顶级域重定向到我的www子域。

CNAME 不是一个选项,但我添加了一个别名A记录来@指向我的 CDN 端点,并将顶点域作为自定义域添加到 CDN。

请求http://<my-domain>.com重定向很好,但请求可以https://<my-domain>.com理解地给出一个可怕的SSL_ERROR_BAD_CERT_DOMAIN错误。Azure 不支持顶级域的 CDN 托管证书

CDN 管理的证书不适用于根域或顶级域。如果 Azure CDN 自定义域是根域或顶级域,则必须使用自带证书功能。

我不想在我的顶级域上实际托管任何内容 - 我只想将其重定向到我的www子域。手动配置(和维护)证书似乎开销很大。

域注册商 GoDaddy 具有“转发”功能,可以满足我的需求,但我更喜欢将 DNS 托管在 Azure 中。

有没有办法将顶级域 HTTPS 请求重定向到我的www子域,而无需为我的顶级域手动配置证书或将我的 DNS 移出 Azure?

Stu*_*ggi 1

您可以使用 Let's Encrypt 自动化顶点证书,使证书部分更容易处理。

除此之外,您基本上需要在某个地方托管一个 301 重定向,同时与 HTTP 和 HTTPS 进行通信才能使其正常工作,恐怕没有捷径,特别是如果您要使用 HSTS。有一些 DNS 提供商实际上在顶端支持 CNAME,但我在尝试这些方面有点犹豫。