Рейтинг:0

Запрос https на поддоменах github.com возвращает неправильные перенаправления 301 на домен

флаг mx

Первый

При выполнении завиток -iv4 https://support.github.com/contact Я получаю 301 ответ с указанием местоположения https://github.com/контакт.

Очевидно, что при выполнении curl для местоположения, возвращенного из ответа 301, я получаю только ответ 404.

Некоторые из моих машин (хосты Linux или контейнеры докеров) никогда не затрагиваются, некоторые — нет. По какой-то причине он кажется привязанным к моей сети.

Я обнаружил проблему при попытке попасть на поддомен api.github.com, проблема та же.

Я открыл билет поддержки github без ответа на данный момент.

Проблема такая же в веб-браузерах, поэтому она вообще не связана с завитком.

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

РЕДАКТИРОВАТЬ:

Неудачный запрос

отказоустойчивый хост:~$ curl -iv4 https://support.github.com/contact
* Попытка 140.82.121.3...
* Установлен TCP_NODELAY
* Подключен к support.github.com (140.82.121.3), порт 443 (#0)
* ALPN, предлагая h2
* ALPN, предлагающий http/1.1
* успешно установить места проверки сертификата:
* CA-файл: нет
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), рукопожатие TLS, приветствие клиента (1):
* TLSv1.3 (IN), рукопожатие TLS, приветствие сервера (2):
* TLSv1.3 (IN), рукопожатие TLS, зашифрованные расширения (8):
* TLSv1.3 (IN), рукопожатие TLS, сертификат (11):
* TLSv1.3 (IN), рукопожатие TLS, проверка CERT (15):
* TLSv1.3 (IN), рукопожатие TLS, Готово (20):
* TLSv1.3 (OUT), изменение шифрования TLS, изменение спецификации шифрования (1):
* TLSv1.3 (OUT), рукопожатие TLS, Готово (20):
* SSL-соединение с использованием TLSv1.3/TLS_AES_128_GCM_SHA256
* ALPN, сервер принят для использования h2
*Сертификат сервера:
* Тема: C=США; ST=Калифорния; L=Сан-Франциско; О=GitHub, Inc.; CN=*.github.com
* дата начала: 25 марта 00:00:00 2021 по Гринвичу
* срок действия: 30 марта 23:59:59 2022 GMT
* subjectAltName: хост "support.github.com" соответствует сертификату "*.github.com"
* эмитент: C=US; О=DigiCert, Inc.; CN = DigiCert High Assurance TLS Hybrid ECC SHA256 2020 CA1
* Проверка сертификата SSL в порядке.
* Используя HTTP2, сервер поддерживает многократное использование
* Состояние соединения изменено (HTTP/2 подтверждено)
* Копирование данных HTTP/2 из буфера потока в буфер соединения после обновления: len=0
* Использование идентификатора потока: 1 (простой дескриптор 0x5579f6dcac10)
> ПОЛУЧИТЬ/связаться с HTTP/2
> Хост: support.github.com
> Пользовательский агент: curl/7.64.0
> Принять: */*
>
* TLSv1.3 (IN), рукопожатие TLS, билет на выпуск новостей (4):
* TLSv1.3 (IN), рукопожатие TLS, билет на выпуск новостей (4):
* старый идентификатор сеанса SSL устарел, удаление
* Состояние соединения изменено (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 301
HTTP/2 301
<длина содержимого: 0
длина содержимого: 0
< расположение: https://github.com/contact
местоположение: https://github.com/contact

<
* Соединение №0 с хостом support.github.com осталось нетронутым

Успешный запрос:

отказоустойчивый хост:~$ curl -iv4 https://support.github.com/contact
* Попытка 140.82.121.3...
* Установлен TCP_NODELAY
* Подключен к support.github.com (140.82.121.3), порт 443 (#0)
* ALPN, предлагая h2
* ALPN, предлагающий http/1.1
* успешно установить места проверки сертификата:
* CA-файл: нет
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), рукопожатие TLS, приветствие клиента (1):
* TLSv1.3 (IN), рукопожатие TLS, приветствие сервера (2):
* TLSv1.3 (IN), рукопожатие TLS, зашифрованные расширения (8):
* TLSv1.3 (IN), рукопожатие TLS, сертификат (11):
* TLSv1.3 (IN), рукопожатие TLS, проверка CERT (15):
* TLSv1.3 (IN), рукопожатие TLS, Готово (20):
* TLSv1.3 (OUT), изменение шифрования TLS, изменение спецификации шифрования (1):
* TLSv1.3 (OUT), рукопожатие TLS, Готово (20):
* SSL-соединение с использованием TLSv1.3/TLS_AES_128_GCM_SHA256
* ALPN, сервер принят для использования h2
*Сертификат сервера:
* Тема: C=США; ST=Калифорния; L=Сан-Франциско; О=GitHub, Inc.; CN=*.github.com
* дата начала: 25 марта 00:00:00 2021 по Гринвичу
* срок действия: 30 марта 23:59:59 2022 GMT
* subjectAltName: хост "support.github.com" соответствует сертификату "*.github.com"
* эмитент: C=US; О=DigiCert, Inc.; CN = DigiCert High Assurance TLS Hybrid ECC SHA256 2020 CA1
* Проверка сертификата SSL в порядке.
* Используя HTTP2, сервер поддерживает многократное использование
* Состояние соединения изменено (HTTP/2 подтверждено)
* Копирование данных HTTP/2 из буфера потока в буфер соединения после обновления: len=0
* Использование идентификатора потока: 1 (простой дескриптор 0x5579f6dcac10)
> ПОЛУЧИТЬ/связаться с HTTP/2
> Хост: support.github.com
> Пользовательский агент: curl/7.64.0
> Принять: */*
>
* TLSv1.3 (IN), рукопожатие TLS, билет на выпуск новостей (4):
* TLSv1.3 (IN), рукопожатие TLS, билет на выпуск новостей (4):
* старый идентификатор сеанса SSL устарел, удаление
* Состояние соединения изменено (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 301
HTTP/2 301
<длина содержимого: 0
длина содержимого: 0
< расположение: https://github.com/contact
местоположение: https://github.com/contact

<
* Соединение №0 с хостом support.github.com осталось нетронутым

РЕДАКТИРОВАТЬ: исправлено

Проблема находится на конце github.com, см.:

Приведет к неправильному перенаправлению 301: curl -v https://support.github.com/contact --resolve 'support.github.com:443:140.82.121.3'

Приведет к правильному перенаправлению 302: curl -v https://support.github.com/contact --resolve 'support.github.com:443:140.82.114.21'

Пока что github не ответил на мой личный запрос в службу поддержки.

Ginnungagap avatar
флаг gu
Скорее всего, у вас есть прокси-сервер, который перехватывает запросы. Проверьте CA сертификата, который вы получаете для `api.github.com`
Bamboozilla avatar
флаг mx
Я обновил свой пост с обоими журналами. Оба сертификата, похоже, имеют действительные сертификаты от github.
John Greene avatar
флаг cn
Попробуйте подделать поле заголовка пользовательского агента HTTP, чтобы оно соответствовало успешному в curl.
Bamboozilla avatar
флаг mx
@JohnGreene: такое же поведение. Я также попытался настроить пользовательский агент на «тест», и поведение по-прежнему согласуется на разных машинах.
Рейтинг:0
флаг mx

Проблема находится на конце github.com, см.:

Приведет к неправильному перенаправлению 301: curl -v https://support.github.com/контакт --resolve 'support.github.com:443:140.82.121.3'

Приведет к правильному перенаправлению 302: curl -v https://support.github.com/контакт --resolve 'support.github.com:443:140.82.114.21'

Пока что github не ответил на мой личный запрос в службу поддержки.

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

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