重定向 https 网址

重定向 https 网址

我的应用程序已在 上提供服务https://beta.myapp.com(我强制到处使用 https ),现在我想更改为https://www.myapp.com

我想知道如何正确地将每个beta.请求重定向到www.

此刻www指向同一个应用程序,然后应用程序重定向到beta(如果您尝试访问,则会收到 SSL 错误https://www)。

我认为可行的是:

  • www在主应用程序上使用证书并创建另一个应用程序(使用beta证书)负责将每个请求重定向到另一个应用程序。(例如https://beta.myapp.com/abouthttps://www.myapp.com/about。但我的应用程序托管在 Heroku 上,我必须为每个证书支付 20 美元/月,因此多一个应用程序意味着更多的费用。
  • 获取涵盖www和的通配符/多域证书beta。但是我已经有 2 个证书了,所以我不想再买一个。

还有其他/更好的方法吗?

答案1

这有点棘手,你没有太多选择。

您可以通过将 beta/www(和根域)指向主 Heroku 应用程序来处理应用程序内部的重定向。但是,为了避免 SSL 错误,您需要安装涵盖 www 和 beta 主机名的证书。

因为 Heroku 不提供在同一个应用程序上关联两个证书的功能,所以在这种情况下您需要购买通配符证书。

另一种解决方案是指向beta另一台服务器。在该服务器上安装证书并将流量重定向到主应用程序。不幸的是,您仍然需要在这里安装证书,因为 SSL 协商发生在发送 HTTP 重定向标头之前,因此如果您不安装它,您的访问者将在重定向之前看到证书错误(或警告)。根据浏览器的不同,在这种情况下重定向可能会发生,也可能不会发生。

这两种解决方案可能都需要您付出额外的经济努力,主要是因为在这种情况下 Heroku 的灵活性有限。一种需要购买通配符证书,另一种需要为另一个应用程序购买新的 SSL 端点(除非您找到在某个便宜的服务器上托管它的方法)。

我知道您可能最近购买了主站点的证书。请记住,大多数 SSL 证书提供商都提供 30 天退款,您可能想看看是否能够获得退款并购买通配符。

如果我必须做出选择,我可能会选择通配符。

答案2

我之前曾按照 Nick 的建议使用 CNAME 做过这件事。另一种方法可能是(可能对你来说不切实际)使用通配符证书。

最后一个选项是,如果您知道您的备用名称,则在证书上提供包含所有主机名的 SAN(主题备用名称)。

http://en.wikipedia.org/wiki/Subject_Alternative_Name

相关内容