2017-02-17 58 views
0

Я хочу, чтобы перенаправить http://www.subdomain.domain.com/ на https://subdomain.domain.comКак reddirect www.subdomain к субдомен с Ssl Apache

Во-первых, я собираюсь объяснить вам, что у меня есть, то, что я сделал, и случается.

Это то, что у меня есть

У меня есть веб-приложение, которое работает на котом, и я использую Apache2 сделать прокси-сервер для приложения.

У меня есть домен, давайте назовем его mydomain.com и основной URL для веб-приложение является suba.mydomain.com (mydomain.com и www.mydomain.com являются было использовать для другой вещи). У меня также есть шаблон SSL для *.mydomain.com.

, но я хочу, чтобы это произошло:

  • http://www.suba.mydomain.com перенаправляет https://suba.mydomain.com

Это то, что я должен попробовать

меня пытаются сделать редирект 301 из http://www.suba.mydomain.com в https://suba.mydomain.com и сделать переписать тоже (без одновременного).

Результаты

Когда я типа www.suba.mydomain.com Я успешно перенаправлен https://suba.mydomain.com, но когда я пытаюсь сделать это еще раз в том же веб-браузере, что выводится сообщение об ошибке, как это:

Browser Error

И это потому, что веб-браузер пытается добавить https:// и попытаться загрузить шаблон *.mydomain.com SSL, который не будет действительным.

Таким образом, в Google Chrome, если я иду в chrome://net-internals/#hsts и удалить suba.mydomain.com и www.suba.mydomain.com и попробуйте еще раз ввести www.suba.mydomain.com я успешно снова перенаправлены на https://suba.mydomain.com, но если я еще раз попытаться сделать это, он не будет работать ,

Что я могу сделать? Благодаря!

ответ

0

Из того, что вы описали, появляется ваш сайт suba.mydomain.com отправляет ответный заголовок HTTP Strict-Transport-Security с директивой includeSubDomains. Это заставляет ваш браузер выполнять внутреннюю переадресацию на версию сайта https://, когда вы впоследствии получаете доступ к http://www.suba.mydomain.com, и ваше правило перезаписи Apache не срабатывает до тех пор, пока соединение с сервером не будет выполнено (для этого необходимо, чтобы квитирование SSL было завершено).

Если вы действительно отправляете заголовок HSTS с includeSubDomains, см., Удаляет ли он его.

Вот что я подозреваю, что происходит:

  1. Вы посещаете http://www.suba.mydomain.com, ваше правило, переписывают в Apache перенаправляет вас на https://suba.mydomain.com.
  2. https://suba.mydomain.com посылает в заголовок HSTS, скорее всего, с includeSubDomains, указывая на все будущие запросы, сделанные [*.] Suba.mydomain.com через незащищенное http:// может быть повышен с помощью браузера https://.
  3. При повторном посещении http://www.suba.mydomain.com браузер перенаправит вас на https://www.suba.mydomain.com из-за настроек кэширования HSTS.
  4. Вы видите ошибку, так как https://www.suba.mydomain.com не соответствует вашему сертификату, действительному для *.mydomain.com. Ваши правила перезаписи Apache не будут выполняться до тех пор, пока не будет установлено соединение, а это означает принятие предупреждения о сертификате.
  5. Удаление записи HSTS из кеша Chrome, как вы это сделали, очистит шифер чистой, и вы сможете получить доступ к http://www.suba.mydomain.com один раз без предупреждений, прежде чем запускать ту же проблему.
+0

Это было! Спасибо !, я все еще использую HTTP Strict-Transport-Security, но без 'includeSubDomains' – Fafa0293