我的应用程序已在 上提供服务https://beta.myapp.com
(我强制到处使用 https ),现在我想更改为https://www.myapp.com
。
我想知道如何正确地将每个beta.
请求重定向到www.
。
此刻www
指向同一个应用程序,然后应用程序重定向到beta
(如果您尝试访问,则会收到 SSL 错误https://www
)。
我认为可行的是:
www
在主应用程序上使用证书并创建另一个应用程序(使用beta
证书)负责将每个请求重定向到另一个应用程序。(例如https://beta.myapp.com/about
)https://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(主题备用名称)。