Рейтинг:5

Мой браузер не будет отображать http://[sub.]example.com

флаг cn
Bob

Когда я иду в http://sub.example.com в моем браузере я получаю "В соединении отказано" сообщение или "недействительный сертификат" ошибка, но я даже не хочу подключаться через https.

Насколько мне известно:

  • Веб-сервер настроен правильно для sub.example.com
  • TCP-порт 80 открыт в группах брандмауэра/безопасности
  • в URL используется обычный HTTP, а не HTTPS
  • DNS-запись для sub.example.com указывает на правильный IP-адрес веб-сервера
  • веб-сервер был перезапущен с новой конфигурацией
  • журналы не показывают запуск или какие-либо другие ошибки

Как можно отладить и в чем там проблема?

Рейтинг:19
флаг cn
Bob

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

Содержание:

  • тестирование (с завиток и инкогнито/анонимный браузер)
  • оба теста отображают ожидаемое содержимое
  • завиток делает, но в приватном окне браузера не отображается правильное содержимое
  • ни один тест не отображает ожидаемое содержимое

тестирование

Попробуйте не только протестировать с полным доменным именем http://sub.example.com но используйте более полный URL-адрес, например http://sub.example.com/some-page.html. Когда вы знаете, что находитесь за прокси-сервером, добавление дополнительных параметров обычно обходит кэшированное содержимое, т. е. добавляет и увеличивает счетчик, такой как http://sub.example.com/some-page.html?test=3

  • тест из окна браузера "Приват/Инкогнито".
    Это снижает вероятность неправильных выводов на основе кэшированных объектов.

  • test из командной строки (на тестовом сервере), например, завиток -vv http://sub.example.com/some-page.html или использовать телнет и эмулировать веб-запрос с помощью

    телнет sub.example.com 80

    ПОЛУЧИТЬ /some-page.html HTTP/1.1
    Хост: sub.example.com

Что искать в завиток вывод:

  • Настройки прокси, безусловно, являются признаком опасности и реальной помехой при отладке проблем с сервером. Прокси-серверы могут кэшировать (записи DNS и веб-контент), ограничивать ваш доступ и даже заменять сертификаты TLS.

    завиток -vv http://sub.example.com/some-page.html
    * Использует переменную окружения прокси no_proxy == 'localhost,127.0.0.1,.corp.example.net'
    * Использует переменную окружения прокси-сервера http_proxy == 'http://[user]:[pass]@proxy.corp.example.net:8080/'
    * Попытка 10.2.0.80:8080...
               ^^^ Опасность - Прокси-сервер
    
  • Протестируйте из (тестовой) системы, которая не использует прокси-сервер, если вы хотите правильно протестировать конфигурацию веб-сервера в Интернете. Обычно у меня нет тестовых систем, поддерживающих полноценный браузер, но обычно я могу управлять системой, которая запускает команды curl из командной строки.

    завиток -vv http://sub.example.com/some-page.html
    * О подключении() к порту 80 sub.example.com (#0)
    * Попытка 192.168.2.119...
    * Подключен к sub.example.com (192.168.2.119), порт 80 (#0)
                                    ^^^ ПРОВЕРЬТЕ, правильный ли это IP-адрес 
                                        вашего веб-сервера?
    > ПОЛУЧИТЬ /some-page.html HTTP/1.1
    > Пользовательский агент: curl/7.29.0
    > Хост: sub.example.com
    > Принять: */*
    

Там вы видите, что соединение успешно установлено с правильным IP-адресом и портом веб-сервера. > маркер предшествует заголовкам запроса, сделанным curl.

Заголовки ответов сервера отмечены значком < маркер, а затем после пустой строки сервер отправляет тело ответа:

< HTTP/1.1 302 Найдено
  | ^^^ Код ответа HTTP STATUS сервера 
   `^^ версия протокола HTTP

< Дата: понедельник, 07 февраля 2022 г., 13:58:11 по Гринвичу
< Сервер: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
<Расположение: https://sub.example.com/some-page.html
< Длина содержимого: 216
< Тип содержимого: текст/html; кодировка = iso-8859-1
<
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
...

После первого заголовка протокола HTTP/1.1 приходит Код состояния HTTP сервер генерирует. Там 2хх ответ означает некоторую форму успеха, 3хх ответы перенаправляют (см. здесь), 4хх и 5хх являются ошибки.

Из других заголовков сервер отправляет Место расположения: в этом примере указывает цель ответа перенаправления.

оба теста отображают ожидаемое содержимое

Заключение: Веб-сервер настроен правильно, и проблема связана с браузером.

Наиболее вероятно причина: возможно, была настроена постоянная переадресация до изменения конфигурации веб-сервера и постоянные редиректы (301) кэшируются браузерами. Довольно распространены кешированные неработающие перенаправления или кешированные перенаправления на https и отсутствие сертификата и сайта https для sub.example.com еще не настроен.

Решение 1: Очистите кэш браузера, и сайт должен загружаться должным образом.
Резолюция 2: Получите SSL-сертификат для sub.example.com и включите TLS.

Причина 2: Не совсем та же основная причина, но фактически аналогичная причина и следствие кешированного перенаправления на https, Строгая транспортная безопасность HTTP (HSTS), установленная пример.com domain также применим ко всем (новым) поддоменам example.com. Любой достаточно современный браузер хранит и соблюдает политики HSTS и отказывается подключаться по простому http к порту 80 и молча переписывает http://sub.example.com URL-адрес для https://sub.example.com и попытайтесь подключиться к порту 443 с помощью TLS.

Разрешение: получите SSL-сертификат для sub.example.com и включите TLS.
Очистка кеша браузера HSTS может работать временно, но это эффективно только в том случае, если вы также удалите политику HSTS включения поддоменов из example.com, что не рекомендуется.

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

Заключение: Веб-сервер настроен правильно, и проблема связана с браузером или клиентом.

Причина 1:Не совсем та же основная причина, но фактически аналогичная причина и следствие для кэшированного Строгая транспортная безопасность HTTP(HSTS) политика домен в списке предварительной загрузки HSTS.Но там, где кешированные политики HSTS не должны соблюдаться в окнах «Частное/инкогнито», всегда должен применяться список предварительной загрузки HSTS, даже в окнах частного/инкогнито.

Просмотрите эти вопросы и ответы, чтобы узнать, как определить, входит ли ваш домен или ваш TLD в список предварительной загрузки HSTS:
Список доменов верхнего уровня (TLD), для которых требуется HTTPS-подключение, например .dev.

Разрешение:получите SSL-сертификат для sub.example.com и включите TLS.

Причина 2:хотя записи DNS настроены правильно, клиентский преобразователь, рабочий стол, на котором работает ваш браузер, может указывать на другой IP-адрес. Проверьте, например, нслукапи копать землючто разрешает клиентский сервер имен, и что не забывайте, что файл hostsзапись для sub.example.com переопределит DNS.

Разрешение:удалить файл hostsзапись для sub.example.com или продолжить расследование несоответствия DNS.

ни один тест не отображает ожидаемое содержимое

Заключение:Проблема на стороне сервера, а не на стороне клиента.

Нет ответа

Ссылаться на Что вызывает сообщение «Отказ в соединении»?когда выясняется, что веб-сервер вообще не отвечает на порту 80.

Перенаправить ответ

Когда веб-сервер ответит, внимательно посмотрите на этот ответ:

< HTTP/1.1 302 Найдено
< Дата: понедельник, 07 февраля 2022 г., 13:58:11 по Гринвичу
< Сервер: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
<Расположение: https://sub.example.com/some-page.html
< Длина содержимого: 216
< Тип содержимого: текст/html; кодировка = iso-8859-1
<
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
...
Это довольно типичный ответ для веб-сервера, настроенного на перенаправление простого HTTP на HTTPS.

302 найдено код состояния в первом заголовке указывает на временное перенаправление. Для постоянного перенаправления, которое будет301 Перемещено навсегда HTTP-заголовок статуса.Не совсем та же основная причина, но фактически аналогичная причина и следствие для кэшированногоСтрогая транспортная безопасность HTTP

(HSTS) политика домен в списке предварительной загрузки HSTS.Но там, где кешированные политики HSTS не должны соблюдаться в окнах «Частное/инкогнито», всегда должен применяться список предварительной загрузки HSTS, даже в окнах частного/инкогнито.

Просмотрите эти вопросы и ответы, чтобы узнать, как определить, входит ли ваш домен или ваш TLD в список предварительной загрузки HSTS:Список доменов верхнего уровня (TLD), для которых требуется HTTPS-подключение, например .dev. Разрешение:получите SSL-сертификат для sub.example.com и включите TLS.
Причина 2: хотя записи DNS настроены правильно, клиентский преобразователь, рабочий стол, на котором работает ваш браузер, может указывать на другой IP-адрес. Проверьте, например, нслукапи

копать землючто разрешает клиентский сервер имен, и что не забывайте, что
файл hosts запись для sub.example.com переопределит DNS.

Разрешение:удалить /файл hosts запись для sub.example.com или продолжить расследование несоответствия DNS.ни один тест не отображает ожидаемое содержимое Заключение:Проблема на стороне сервера, а не на стороне клиента. Нет ответаСсылаться на
Что вызывает сообщение «Отказ в соединении»? когда выясняется, что веб-сервер вообще не отвечает на порту 80. Перенаправить ответКогда веб-сервер ответит, внимательно посмотрите на этот ответ:

< HTTP/1.1 302 Найдено

< Дата: понедельник, 07 февраля 2022 г., 13:58:11 по Гринвичу < Сервер: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16<Расположение: https://sub.example.com/some-page.html

< Длина содержимого: 216< Тип содержимого: текст/html; кодировка = iso-8859-1

флаг cn
Я не понимаю причину 2 для «завитков работает, но браузер не работает». Как только последние могут быть затронуты проблемами DNS?
флаг cn
Bob
Потому что я обычно запускаю команды cli не с рабочего стола, на котором работает мой веб-браузер, а с моего тестового сервера. Например, мой тестовый сервер также не использует ни внутренние корпоративные серверы имен, ни часть домена AD. И я написал эти вопросы и ответы после того, как увидел, что одни и те же вопросы повторяются регулярно, и устал от повторения одних и тех же замечаний. Так что рассматривайте это как отладку 101 с обоснованными предположениями о типичных проблемах, с которыми сталкиваются люди, о том, как я проверяю эти гипотезы и как их решить.
флаг cn
Ах, тогда, пожалуйста, добавьте это к ответу - либо рекомендацию запустить curl с другой машины в разделе «тестирование», либо просто объясните несоответствие DNS, вызванное запуском браузера и curl на разных машинах. Мне бы не пришло в голову использовать джамп-сервер по умолчанию

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.