Перенаправление https URL-адреса

Перенаправление https URL-адреса

Мое приложение обслуживается на 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 долларов в месяц за сертификат, так что еще одно приложение означает дополнительные расходы.
  • Получите wildcard/мультидоменный сертификат, охватывающий wwwи beta. Но у меня уже есть 2 сертификата, поэтому я не хочу покупать еще один.

Есть ли другой/лучший способ сделать это?

решение1

Это немного сложно, и у вас не так много вариантов.

Вы можете управлять перенаправлением внутри приложения, указывая как beta/www (и корневой домен) на основное приложение Heroku. Однако, чтобы избежать ошибок SSL, вам нужно установить сертификат, который покрывает как www, так и beta имена хостов.

Поскольку Heroku не предоставляет вам возможности связать два сертификата с одним и тем же приложением, в этом случае вам придется приобрести wildcard-сертификат.

Другое решение — указать betaна другой сервер. Установите сертификат на этом сервере и перенаправьте трафик в основное приложение. К сожалению, вам все равно нужно установить сертификат здесь, потому что согласование SSL происходит до отправки заголовка перенаправления HTTP, поэтому, если вы его не установите, ваши посетители увидят ошибку сертификата (или предупреждение) перед перенаправлением. В зависимости от браузера, перенаправление может произойти или не произойти в этом случае.

Оба решения, вероятно, потребуют дополнительных экономических усилий с вашей стороны, в основном из-за ограниченной гибкости Heroku в этом случае. Одно требует покупки wildcard-сертификата, другое — покупки новой конечной точки SSL для другого приложения (если только вы не найдете способ разместить его где-нибудь на дешевом сервере).

Я понимаю, что вы, возможно, недавно приобрели сертификат для основного сайта. Помните, что большинство поставщиков SSL-сертификатов предлагают 30-дневный возврат средств, вы можете проверить, сможете ли вы получить возврат средств и приобрести wildcard.

Если бы мне пришлось делать выбор, я бы, наверное, выбрал вариант «джокер».

решение2

Я сделал это до использования CNAMEs, как предложил Ник. Другой способ, вероятно (может быть непрактичным для вас) — использовать wildcard сертификаты.

Последний вариант, если вы знаете свои альтернативные имена, — указать SAN (альтернативные имена субъектов) в вашем сертификате, содержащем все ваши имена хостов.

http://en.wikipedia.org/wiki/Альтернативное_имя_темы

Связанный контент