1

У меня странная проблема и куча симптомов, которые я не могу понять.

У меня есть домен .com, который указывает на мой домашний IP-адрес. Внутри локальной сети я использую разрешение внешнего DNS, поэтому, если я выполняю nslookup внутри, я получаю свой внешний IP-адрес, а не IP-адрес локальной сети.

Вот что происходит:

  • Когда я дома (на устройстве с внутренним IP, скажем, 10.0.0.20)
  • И я использую Chrome для Windows (работает с Chrome 35 atm)
  • И я пытаюсь получить доступ к ресурсу, используя свое внешнее доменное имя через HTTP (например, http://www.homedomain.com)

... затем Chrome немедленно преобразует протокол в https (в адресной строке) и жалуется на ошибку SSL. Я не могу достичь цели.

Он работает, как и ожидалось, если я использую ту же сборку Chrome на внешней машине (например, тот же профиль пользователя на моем компьютере в офисе). Он также работает локально с использованием Internet Explorer и Firefox. Это только проблема с внутренним запуском Chrome. Я могу воспроизвести это на 2 разных машинах, одна из которых работает под управлением Windows 8.1, а другая - под управлением Windows 7, и может воспроизводить ее как по Wi-Fi, так и по проводной сети.

Мой домашний сервер работает под управлением Windows Server Essentials 2012, и у меня есть внутренний домен, но я не думаю, что сервер участвует в моей проблеме.

Я настроил свой маршрутизатор для перенаправления порта 1880 на устройство Raspberry Pi, где у меня прослушивается http-сервер. Вне Chrome я могу нажать http://www.homedomain.com:1880, и он разрешится идеально. Когда я пробую его в Chrome, он мгновенно преобразуется в https и завершается неудачно (потому что RPi не принимает соединения SSL). Когда я использую LAN IP в Chrome, это также работает.

На роутере установлена прошивка Tomato.

Что тут происходит?

  • Это не может быть явной настройкой / ошибкой Chrome, потому что тот же профиль / версия Chrome работает, когда я нахожусь за пределами локальной сети.
  • Это не может быть локальная настройка ПК, потому что IE и Firefox работают нормально.
  • Это не может быть мой Windows Server, потому что сам маршрутизатор обрабатывает переадресацию портов.
  • Это не может быть маршрутизатор, потому что IE и Firefox работают нормально.

У меня нет идей - одно из моих предположений неверно. Есть ли в Chrome более красивый сетевой код, вызывающий неожиданное поведение в моей ситуации? Могу ли я иметь какую-то проблему с обратной связью, которую IE/FF изящно обрабатывает?

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

Обновление: еще одна часть данных - Chrome (использующий тот же профиль пользователя) ведет себя корректно при запуске внутри виртуальной машины Hyper-V, размещенной на уязвимом компьютере.

Обновление 2: это поведение исчезает, когда я создаю новый профиль пользователя Chrome. Однако, как только я регистрирую этот профиль в своей учетной записи Google, проблема возвращается. Похоже, что-то в профиле пользователя Chrome связано с моей учетной записью Google.

1 ответ1

4

Не совсем точно, но вот предположение:

Google Chrome (наряду с другими современными браузерами) поддерживает HTTP-заголовок Strict-Transport-Security , который сообщает браузеру, что «этот сайт должен быть доступен только через HTTPS, поэтому в будущем, даже если пользователь запрашивает HTTP, ему назначают HTTPS вместо." Поскольку использование HTTPS становится все более распространенным, отправка этого заголовка становится стандартной по умолчанию в новых программах и инфраструктурах, как правило, если HTTPS настроен вообще (что необходимо для того, чтобы заголовок Strict-Transport-Security имел какой-либо эффект) предпочтительно использовать его для всего. Ваш опыт заставляет меня думать, что в какой-то момент вы пытались перейти на какую-то страницу в Chrome своего домена через HTTPS, и что приложение, которое вы использовали, отправило этот заголовок. Таким образом, Chrome на зараженных компьютерах включен в список Strict-Transport-Security, поэтому он не разрешает переходить на страницы, отличные от HTTPS, в этом домене.

Вы никогда не упоминали, что когда-либо пытались что-либо сделать в этом домене через HTTPS, но есть ли шанс, что вы это сделали в какой-то момент, и именно тогда у вас начались проблемы? (Еще менее вероятный сценарий состоит в том, что ваш домен находится в списке предварительно скомпилированных в HSTS Chrome без вашего ведома.) Я не нашел способ просмотреть список строгой транспортной безопасности в Chrome, поэтому я не знаю, как проверить, что это проблема, но все «Chrome хочет использовать HTTPS, и я не знаю, почему», проблемы, которые я В конечном итоге мы увидели, что в какой-то момент домен находился поверх HTTPS и использовал заголовок Strict-Transport-Security, так что это гипотеза, которую я бы предположил на данный момент, если только нет чего-то еще, что может вызвать поведение в Chrome.

Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .