фатальный: обнаружено исключение HttpRequestException. Ошибка с репозиториями GitHub/Bitbucket из-за отказа от поддержки TLS-1.0

Проблема

Недавно я столкнулся со следующим сообщением при нажатии на репозиторий GitHub:

"fatal: HttpRequestException encountered. " с последующим повторным запросом имени пользователя и пароля.

Из предыдущих поисков Visual Studio и различные другие такая же коренная проблема. Для тех, кто ленивее меня, здесь есть сводка различных решений для разных приложений/ОС с соответствующими обсуждениями. Надеюсь, люди найдут это полезным.

Причина

Не могу назвать обновление безопасности проблемой, так что вот причина. Проблема заключается в том, что GitHub удалил поддержку TLS-1.0, которая вызывает проблемы с клиентами, включая встроенный в Microsoft Visual Studio клиент git, версии Git ниже 1.14, а также клиенты с графическим интерфейсом, включая tortoiseGit и т. д. Полные примечания к выпуску можно найти здесь: https://githubengineering.com/crypto-removal-notice/

Bitbucket отключит TLSv1.0 и TLSv1.1, начиная 1 декабря 2018. Я ожидаю таких же проблем, как и раньше.

Решение

Изменить: переместил свой ответ в поле для ответов. Смотри ниже.


person Eric Bringley    schedule 02.03.2018    source источник
comment
Вы должны отредактировать это и переместить ответ в фактический отдельный ответ. Самостоятельный ответ — это хорошо, но вы разместили вопрос, включая ответ, и все это в поле вопроса.   -  person Benjamin W.    schedule 02.03.2018


Ответы (4)


Git Hub удалил TLS-1.0 из своих служб аутентификации. https://githubengineering.com/crypto-removal-notice/

Решения

Windows-клиенты

Используйте версию 2.14.3 (или новее) Git для Windows, а новее включите обновленный диспетчер учетных данных Git для Windows: https://gitforwindows.org/

Вы также можете явно обновить Git Windows Credencial Manager до последней версии 1.14.0, чтобы получить поддержку TLS-1.2: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0

Клиенты Visual Studio

Рекомендуется обновить ваш клиент до VS 2017 или, если вы не можете выполнить обновление, вы можете установить два раздела реестра для всей машины, которые влияют на все приложения на основе .NET на клиентском компьютере, которые вы можете изменить... https://developercommunity.visualstudio.com/content/problem/201457/unable-to-connect-to-github-due-to-tls-12-only-cha.html

JDK

TLS-1.2 используется по умолчанию в JDK8 и доступен в JDK7. https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https

Нативные клиенты Red Hat Git

RH 5 не поддерживает TLS-1.2, и GitHubEngineering предлагает обновиться до более новых версий ОС. RH 6.8 и 7.2 будут поддерживать TLS-1.2. https://www.linuxquestions.org/questions/blog/mensawater-183304/rhel5-wont-support-tlsv1-1-or-higher-36951/

person Eric Bringley    schedule 05.03.2018
comment
Это не было полным решением для меня. Я использую Git 2.15, который использует TLS 1.2. Мой сервер — Bitbucket, поэтому это может не относиться к Github, но: Операции git завершаются успешно, но все еще выводят фатальную ошибку: обнаружено исключение HttpRequestException, поэтому они выглядят как сбои. Подробный вывод показывает: ``` ‹ HTTP/1.1 401 Unauthorized * Проблема аутентификации. Игнорирование этого. ‹ ... * Закрытие соединения 0 фатально: обнаружено исключение HttpRequestException. При отправке запроса произошла ошибка. ``` ... за которым следует HTTPS-запрос, который работает. Это случается с кем-то еще? - person Travis Wilson; 04.12.2018
comment
Привет, @TravisWilson, если ты еще не разобрался с этим... было ли что-то полезное на странице объявлений Bitbucket? - person Eric Bringley; 12.12.2018
comment
Я не видел ничего в объявлении, которое помогло бы здесь. Я не слишком старался исправить это, так как операции git do успешны. Я (к сожалению) привык игнорировать сообщения об ошибках. - person Travis Wilson; 08.05.2019
comment
Каков путь к происхождению вашего репозитория? это http:// вместо https? Просто странная мимолетная мысль, когда вы задаетесь вопросом, почему git пытается использовать HTTP вместо https, когда вы нажимаете/вытягиваете... P.S. Не отвечайте на первый вопрос. - person Eric Bringley; 08.05.2019
comment
Привет. Я не могу обновить свой git с версии 2.8.2 до последней. Я все еще получил версию 2.8.2 после запуска git --version. Искал часами, но ничего. - person Lekz Flores; 22.05.2019
comment
@LekzFlores, можешь рассказать подробнее о том, что ты сделал? Я не знаю, как помочь, если я не знаю, что вы сделали и с какой системой (системами) вы работаете. Также может случиться так, что вам также может понадобиться создать свой собственный вопрос, так как теперь это похоже на проблему с установкой git вместо поддержки TLS-1.0. Предположительно, вы пытаетесь реализовать одно из приведенных выше решений. - person Eric Bringley; 22.05.2019
comment
У меня есть клиент 2.15 git, получаю ту же ошибку. Я смог загрузить и переключить ветку, но когда я нажимаю git pull, я получаю сообщение об ошибке. Возможно, потому что клиент запрашивает UN в том же окне командной строки, а пароль запрашивает в отдельном диалоговом окне. Не уверен, как это исправить. - person Raghuveer; 12.02.2021

Шаг 1 Сначала вам нужно загрузить и установить последнюю версию Git Windows Credential Manager.

Вот ссылка на него на GitHub. https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/latest

Шаг 2 Перезагрузите компьютер.

Шаг 3 Введите команду git в командной строке, и вам будет предложено снова войти в систему.

Шаг 4. Если вы по-прежнему получаете ту же фатальную ошибку, вам необходимо обновить Git, загрузив последнюю версию отсюда: https://git-scm.com/downloads

Шаг 5 Введите команду git в командной строке, и вам будет предложено снова войти в систему. Теперь проблема должна быть решена, и вы сможете продолжить работу в обычном режиме.

person uncle-tee    schedule 28.03.2018
comment
Должен включать кредиты: источник - person eckc; 29.08.2018

Поддержка TLS прекращена в старых версиях git.

Обновление git на вашем компьютере решает эту проблему.

Загрузите последнюю версию git и установите на свой компьютер отсюда: https://git-scm.com/downloads.

person rockey91    schedule 05.03.2018

Решение выше не работает для меня. Но у меня есть решение для этого. Когда git снова запрашивает у нас имя пользователя на git bash, введите свое имя пользователя и пароль GITHUB на самом git bash, и вы вернетесь к работе.

person Shubham Bichkar    schedule 14.06.2019
comment
Если это сработало во второй раз, то это не связано с поставленным вопросом, который касается совместимости TLS 1.0. - person Edward Thomson; 14.06.2019
comment
это то, что github часто спрашивает ... это неправдоподобный ответ на этот вопрос - person Wollhaar; 20.09.2020