
我的應用程式運行在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
。但我已經有兩張證書了,所以我真的不想再買一張。
還有其他/更好的方法嗎?
答案1
這有點棘手,而且你沒有太多選擇。
您可以透過將 beta/www (和根網域)指向主 Heroku 應用程式來處理應用程式內的重定向。但是,為了避免 SSL 錯誤,您需要安裝涵蓋 www 和 beta 主機名稱的憑證。
由於 Heroku 不支援您在同一應用程式上關聯兩個證書,因此在這種情況下您需要購買通配符證書。
另一種解決方案是指向beta
另一台伺服器。在該伺服器上安裝憑證並將流量重新導向到主應用程式。不幸的是,您仍然需要在此處安裝證書,因為SSL 協商發生在發送HTTP 重定向標頭之前,因此,如果您不安裝它,您的訪客將在重定向之前看到證書錯誤(或警告)。根據瀏覽器的不同,在這種情況下可能會發生重定向,也可能不會發生。
這兩種解決方案可能都需要您付出額外的財務努力,主要是因為在這種情況下 Heroku 的靈活性有限。一個需要購買通配符證書,另一個需要為另一個應用程式購買新的 SSL 端點(除非您找到一種方法將其託管在某個便宜的伺服器上)。
據我了解,您可能最近購買了主網站的證書。請記住,大多數 SSL 憑證提供者提供 30 天退款,您可能想看看是否能夠獲得退款並購買通配符。
如果我必須做出選擇,我可能會選擇通配符。
答案2
在按照 Nick 的建議使用 CNAME 之前,我已經完成了此操作。另一種方法可能(可能對您來說不實用)是使用通配符憑證。
如果您知道您的備用名稱,最後一個選項是在包含所有主機名稱的憑證上提供 SAN(主題備用名稱)。