Назад | Перейти на главную страницу

Использовать файл хостов Windows для перенаправления внешнего URL-адреса на поддомен?

Я просто опубликую этот вопрос и отредактирую его, если сообщество сочтет, что он нуждается в доработке или уточнении.

Проблема

Сегодня у меня возникла блестящая идея. Я много покупаю на Amazon.com. Amazon предлагает программу, в рамках которой часть всех ваших покупок направляется в благотворительный фонд по вашему выбору под названием «Amazon Smile». Вы можете «активировать» благотворительность, перейдя на «smile.amazon.com» (субдомен amazon.com). Я хочу использовать файл hosts в Windows 10 для перенаправления всякий раз, когда я набираю «amazon.com» для автоматического перехода на «smile.amazon.com», чтобы моя благотворительность всегда приносила пользу. К сожалению, это не работает, как я надеялся.

Что я пробовал

Сначала я открыл Notepad.exe от имени администратора. Затем я открыл файл hosts из Блокнота (путь :)

C:\Windows\System32\drivers\etc\hosts

и безуспешно пробовал все следующее:

Ошибки сертификата / безопасности

После внесения вышеуказанных изменений я получаю эту ошибку:

Хром:

Ваше соединение не является приватным

Злоумышленники могут пытаться украсть вашу информацию с www.amazon.com (например, пароли, сообщения или кредитные карты). NET :: ERR_CERT_COMMON_NAME_INVALID

Если я нажму «Дополнительно», я получу следующее:

Этот сервер не смог доказать, что это www.amazon.com; его сертификат безопасности получен с сайта smile.amazon.com. Это может быть вызвано неправильной конфигурацией или злоумышленником, перехватывающим ваше соединение.

Когда я все равно нажимаю, чтобы перейти на amazon, браузер переводит меня на amazon.com, и я вижу это в URL:

(https [зачеркнуто]): //www.amazon.com


Мои вопросы

Итак, я думаю, что хочу знать:

  1. Возможно ли перенаправление amazon.com на smile.amazon.com через файл hosts Windows?
  2. Как мне это сделать?

Разрешение DNS и перенаправление HTTP - это совершенно разные вещи, и этот подход неверен. Отравление вашего локального разрешения DNS для принудительного преобразования "amazon.com" в поддельный IP-адрес "smile.amazon.com" приведет только к проблемам с сертификатами SSL, сеансами HTTP и отказами межсайтовых запросов на стороне сервера:

Во-первых, сертификат SSL. amazon.com и smile.amazon.com обслуживаются с использованием сертификатов, специфичных для поддоменов, поэтому браузеры сообщают пользователю об ошибке при возникновении URL-запроса, не соответствующего имени сертификата. Итак, если вы запрашиваете ресурсы «amazon.com» на серверах, поддерживающих «smile.amazon.com», даже до того, как HTTP-запрос может быть выполнен, ваш браузер предупредит вас из-за несовпадения имени сертификата. Конечно, вы можете игнорировать это, но javascript, поддерживающий логику приложения, может отсутствовать при наличии перекрестных доменных запросов, что делает Интернет совершенно бесполезным.

Во-вторых, если вы каким-либо образом обойдете проблемы с SSL, ваш браузер будет отправлять запросы на smile.amazon.com с запросом содержимого amazon.com, что приведет к появлению на стороне сервера всевозможных механизмов безопасности, запрещающих такое пересечение сайтов. Запросы.

И, наконец, ожидайте всевозможных проблем с управлением сеансом на стороне сервера, аутентификацией, проверкой файлов cookie и т. Д.

Я искал решение для перенаправления URL-адреса для другого и нашел эту ветку. Я думал, что другие сочтут мой вывод полезным, даже если это не прямой ответ на ваш вопрос, тем не менее, это решение проблемы.

Я предлагаю вам попробовать вместо редактирования файла hosts в Windows использовать такой плагин, как Перенаправитель для Firefox или Редиректор для Chrome.

Это здорово, когда я не могу просматривать некоторые веб-сайты, когда я не хочу, например, в целях повышения производительности, или заставлять себя использовать новую услугу. Можно представить себе использование перенаправителя, чтобы прекратить использование hotmail.com и использовать другую настраиваемую службу, например, без изменения каких-либо других привычек.

Это может помочь вам решить вашу проблему, если вы пользователь Chrome:

Всегда улыбайся это расширение Chrome, которое автоматически перенаправляет вас на smile.amazon.com.

Поскольку и amazon.com, и smile.amazon.com обслуживаются более чем одним IP-адресом, ваш файл hosts может требовать регулярного обновления.

И также может быть, что Amazon использует заголовок хоста (который представляет собой домен, который вы пишете в браузере), чтобы определить, к какому сайту вы пытаетесь получить доступ, поэтому я думаю, что нужен другой подход. Если у вас есть возможность настроить локальный веб-сервер (либо на вашем собственном компьютере, либо где-то на хосте), вы можете сделать этот веб-сервер фиктивным веб-сайтом amazon.com, который выполняет перенаправление на smile.amazon.com, а затем сделать одна запись в файле hosts:

<ip-of-local-webserver>    amazon.com

Поскольку веб-сервер будет выполнять перенаправление, ваш браузер будет перенаправляться на smile.amazon.com каждый раз, когда вы пишете amazon.com в браузере. Это также устранит любые предупреждения о сертификатах.

  1. NBTSTAT - это инструмент NetBIOS, не имеющий ничего общего с DNS.

  2. Если вы хотите, чтобы amazon.com разрешался в IP-адрес smile.amazon.com через ваш файл хоста, вы должны пинговать amazon.com, а не smile.amazon.com после того, как вы добавили запись файла хоста. Ваша цель - разрешить amazon.com IP-адрес smile.amazon.com, поэтому имя amazon.com - это имя, которое вы должны использовать в своих тестах, чтобы убедиться, что оно разрешается в IP-адрес smile.amazon.com. .

  3. Если вы добавляете запись в файлы хостов для amazon.com, используя IP-адрес для smile.amazon.com, а пинг amazon.com возвращает IP-адрес для smile.amazon.com, то файлы хостов работают. Если ваш браузер все равно направляет вас на amazon.com, это не имеет ничего общего с вашим файлом hosts.

Думаю, здесь есть небольшая путаница. Эти строки вам не нужны:

smile.amazon.com amazon.com
54.239.26.123 amazon.com

Но только те, которые перенаправляют amazon.com Отправить smile.amazon.comIP:

54.239.26.123 amazon.com
54.239.26.123 www.amazon.com

Но тоже не работает:

1-й: потому что используя айпи адрес вы достигаете их NIC / NAT / шлюз, Пока URL указывает на страница интернета на веб-сайтах за этим IP-адресом. Например, если вы разрешите youtube.com а затем попытайтесь вручную открыть его IP-адрес, вы достигнете www.google.com, потому что оба размещены за одним и тем же адресом (адресами) и идентифицируются своим URL. Итак, представьте, что оба размещены позади 54.239.26.123 и единственный способ добраться до них - это URL, который вы заменили на amazon.com, что означает, что вы хотите посетить amazon.com!

2-й: Предположим smile.amazon.com размещен на другом сервере. Сертификаты SSL / TLS выдаются URL-адресам, в некоторых случаях, даже если вы заходите на веб-сайт, используя address.com вместо www.address.com вы получите ошибку сертификата, потому что сертификат выдается только последнему. Итак, если вы попытаетесь получить доступ к IP-адресу, предназначенному для smile.amazon.com используя адрес amazon.com вы получите предупреждение о безопасности сертификата, и вам нужно будет добавить исключение безопасности.

Извините, я не эксперт в веб-сервисах / хостинге. Я просто постарался объяснить это.