CNAME 重定向到外部 https url

CNAME 重定向到外部 https url

我有一个特定的设置。这确实是由于一些我无法解决的限制:我拥有域名 1. 和 2.,以及我不拥有的外部 URL:

  1. 开始吧
  2. root.com
  3. http://target.com/my/site?a=1

我的目标是重定向http://sub.start.com(和https://..。) 到http://target.com/my/site?a=1.现在来说说限制:

  • 对于 1. 我可以更改 dns 条目。但是,我无法更改 http 服务器本身的任何内容。此外,当前设置是每个 http 请求都重定向到 https。我也无法更改 SSL 证书,因为不是通配符证书
  • 对于 2. 基本上没有限制。我可以更改服务器上的所有内容。(lighttpd)我还可以通过以下方式获取 SSL 证书让我们加密
  • 对于 3。如前所述,这是一个不属于我的外部 URL。它还会将任何 http 请求重定向到 https

如何实现我的目标?这是我迄今为止的设置:

  • 1 上的从“sub.start.com”到“sub.root.com”的 DNS CNAME 条目。
  • 在 root.com 上从 sub.root.com 重定向到http://target.com/my/site?a=1

有效的是重定向http://sub.root.comhttp://target.com/my/site?a=1. 不起作用的是:

  1. 重定向自https://sub.root.comhttp://target.com/my/site?a=1 在 Firefox 中返回“不安全连接”消息。这是因为 sub.root.com 尚未包含在 SSL 证书中。我能理解这个问题。它很容易修复。
  2. 然而,我不明白的是,重定向自http://sub.start.com不起作用。这会将我重定向到https://sub.start.com然后抱怨 root.com 上的证书不包含 sub.start.com。这是为什么?我原本以为 CNAME 条目会“忽略”start.com 上的服务器。请求应该直接发送到 root.com,不是吗?

另外,有没有办法通过这种精确的设置实现我的目标?我正在考虑将 sub.start.com 和 sub.root.com 添加到 root.com 的 SSL 证书中。这能解决所有问题吗?

答案1

我原本以为 CNAME 条目会“忽略”start.com 上的服务器。请求应该直接转到 root.com,不是吗?

错误的预期,这里反复讨论过:重定向是在 HTTP 协议上完成的。一旦使用CNAMEDNSA记录解析,请求就会直接转到 IP 地址,而不知道 DNS 级别发生了什么。CNAME不会进行 HTTP 重定向。

然后,请求将地址栏上的原始主机名作为 HTTP 1.1Host标头包含

GET / HTTP/1.1
Host: sub.start.com

并且 Web 服务器将回复为该虚拟主机配置的内容。浏览器将地址与 SSL 证书进行比较时,也会使用此主机名(且仅使用此主机名)。此比较在发送标头之前以及发生任何重定向之前完成。

将所有其他主机名配置为重定向到 Web 服务器配置中的规范主机名,可以解决重定向问题。将所有主机名配置为主题替代名称您的证书解决了用户收到的错误消息。

相关内容