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

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

我正在尝试使用自定义域和 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?

答案1

您可以使用 Let's Encrypt 自动化 apex 的证书,从而使证书部分更易于处理。

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

答案2

不,除非您拥有适当的 SSL 证书,否则您无法接收 HTTPS 请求。

随后发生重定向。

答案3

编辑:抱歉,我没有仔细阅读问题。我也想避免管理证书的开销,但我没有找到解决办法。您实际上可以在 Azure 中购买 SSL 证书,它实际上是由 GoDaddy 提供的。我想知道它是否可以自动续订。

我最终从 ssls.com 购买了超便宜的 4 年期证书,将其保存在 Azure Vault 中,并让我的 Azure CDN 将其用于我的顶级域(使用以下步骤在 Azure DNS 中设置)。我的 CDN 将对顶级域的请求重定向到 www 子域。

您现在可以使用别名来执行此操作。

  1. 前往 DNS 区域
  2. 添加记录集
  3. 保留名称为空
  4. 选择A型
  5. 对于别名记录类型,选择“是”
  6. 从资源下拉列表中选择 CDN 端点

然后,在 CDN 端点中添加您的主机名 (example.com)。

您将需要在 CDN 中为根级域使用自定义 SSL。

相关内容