如何将子域名重定向到具有 SSL 支持的备用服务器?

如何将子域名重定向到具有 SSL 支持的备用服务器?

我希望在不改变用户地址栏的情况https://sub.domain.com下进行重定向。https://sub.otherdomain.com

从技术上来说这可行吗?我能想象到一些证书问题吗?

顺便说一下,我们在 Linux 上使用 Apache。

谢谢!

-

一些背景信息;

我们正在推出一款网络应用程序,经销商可以将其提供给他们的客户,最好是“位于”他们自己的域名上,但由我们托管。因此,当客户访问 app.reseller.com 时,他们实际上是在使用 app.ourcompany.com。这是为了最大限度地降低代码泄露的风险,并使更新和修复的执行完全由我们自己控制。

答案1

修补您的应用以使用窗口历史推送状态
让您的客户在 app.clientdomain.tld 上运行一个网络服务器,为您的网站提供 iframe。
希望您的客户的用户使用兼容的浏览器(并启用了 javascript)。

话虽如此,如果可以的话,Christopher Evans 的第一个想法(在 DNS 级别重新路由)是最好的。(使用 CNAME,这样您的客户端就可以一劳永逸。)但是,由于任何实体都不应该能够收到另一个实体的有效证书,因此除非单个客户端拥有多个域,否则多域证书将无济于事。您的客户端必须生成有效证书并将证书和相关密钥交给您。(密钥应该安全地传递。)

或者你可以等待http://www.ietf.org/rfc/rfc2817.txt(不要!这是事实,但是没用)。

编辑:

一个不消耗 IP 地址的选项(至少在你用完容易访问的端口之前)是让你的 Web 服务器在备用端口而不是备用 IP 地址上为每个客户端证书提供服务。例如客户端链接https://app.client.tld:7703/
您仍然需要进行 DNS 操作。

答案2

如果你不想更改地址栏,那么你要么必须使用 HTML 框架,要么需要将服务器设置为代理。这样到达的请求https://sub.domain.com代理至https://sub.otherdomain.com

如果地址栏不改变,则无法执行 HTTP 重定向。

答案3

有一点可能性,您可以让某些东西发挥作用,但您必须从支持两个域名的通配符证书开始。

您可能要这样做的一个方法是使用一个前端 Apache 代理,该代理使用多个连接器提供通配符证书并使用 mod-proxy。在这种配置下,客户端可以在域之间切换,而不会引发“验证此证书”错误。

然后,前端代理服务器会使用 mod-proxy、mod-ajp 和/或 mod-rewrite 智能地将请求转发到后端 http 专用服务器(例如 tomcat 实例),其中后端服务器在每个服务器站点的不同端口上运行。您的 mod-rewrite 规则可以处理选择如何路由的所有细节。

答案4

1) 您可以让 DNS 将 sub.domain.com 指向您控制的 IP 地址/服务器。然后,您将在那里安装 sub.domain.com 的 SSL 证书。2) 如果您的 IP 地址有限,您可以获取多域名证书。Go Daddy 限制您最多可添加 99 个域名,并且添加每个域名可能都需要复杂的流程。3) 您还可以让客户端获取 SSL 证书,并充当连接到您网站的代理。

相关内容