
私のアプリは で提供されています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 ドルを支払う必要があるため、アプリが 1 つ増えるということは、費用が増えることを意味します。www
と の両方をカバーするワイルドカード/マルチドメイン証明書を取得しますbeta
。ただし、すでに 2 つの証明書を持っているため、別の証明書を購入したくありません。
他に/より良い方法はありますか?
答え1
それは少し難しいですし、選択肢もあまりありません。
beta/www (およびルート ドメイン) の両方をメインの Heroku アプリケーションにポイントすることで、アプリ内のリダイレクトを処理できます。ただし、SSL エラーを回避するには、www と beta ホスト名の両方をカバーする証明書をインストールする必要があります。
Heroku では同じアプリに 2 つの証明書を関連付ける機能が提供されていないため、その場合はワイルドカード証明書を購入する必要があります。
もう 1 つの解決策は、beta
別のサーバーを指定することです。そのサーバーに証明書をインストールし、トラフィックをメイン アプリケーションにリダイレクトします。残念ながら、SSL ネゴシエーションは HTTP リダイレクト ヘッダーが送信される前に行われるため、ここでも証明書をインストールする必要があります。そのため、証明書をインストールしないと、訪問者はリダイレクトされる前に証明書エラー (または警告) が表示されます。ブラウザーによっては、その場合リダイレクトが行われる場合と行われない場合があります。
どちらのソリューションも、Heroku の柔軟性が限られているため、おそらくお客様側で追加の経済的な努力が必要になります。1 つはワイルドカード証明書の購入が必要で、もう 1 つは他のアプリ用の新しい SSL エンドポイントの購入が必要です (どこかの安価なサーバーでホストする方法が見つからない限り)。
メイン サイトの証明書を最近購入したことは理解できます。ほとんどの SSL 証明書プロバイダーは 30 日間の返金を提供していることに留意してください。返金を受けられるかどうかを確認し、ワイルドカードを購入することをお勧めします。
選択しなければならない場合は、おそらくワイルドカードを選択するでしょう。
答え2
Nick が提案したように、私は以前 CNAME を使用してこれを実行しました。おそらく別の方法は (あなたにとっては実用的ではないかもしれませんが)、ワイルドカード証明書を使用することです。
最後のオプションとして、代替名がわかっている場合は、すべてのホスト名を含む証明書に SAN (サブジェクト代替名) を指定します。