Сертификат SSL отклонен при попытке доступа к GitHub через HTTPS через брандмауэр

Я застрял за брандмауэром, поэтому я должен использовать HTTPS для доступа к моему репозиторию GitHub. Я использую Cygwin 1.7.7 на Windows XP.

Я пытался установить пульт наhttps://[email protected]/username/ExcelANT.git, но нажимает подсказки для пароля, но ничего не делает, как только я ввел его.https://username:<password>github.com/username/ExcelANT.git и клонирование пустого репо с нуля, но каждый раз это дает мне ту же ошибку

ошибка: проблема с сертификатом SSL, проверьте, что сертификат CA в порядке. Подробности:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата при доступеhttps://github.com/username/ExcelANT.git/info/refs

ВключениеGIT_CURL_VERBOSE=1 дает мне

* О подключении () к порту 443 github.com (# 0)
* Попытка 207.97.227.239 ... * Успешно установить местоположение проверки сертификата:
* CAfile: нет
CApath: / usr / ssl / certs
* Проблема с сертификатом SSL, убедитесь, что сертификат CA в порядке. Подробности:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата
* Expire очищается
* Закрытие соединения № 0
* О подключении () к порту 443 github.com (# 0)
* Попытка 207.97.227.239 ... * Успешно установить местоположение проверки сертификата:
* CAfile: нет
CApath: / usr / ssl / certs
* Проблема с сертификатом SSL, убедитесь, что сертификат CA в порядке. Подробности:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата
* Expire очищается
* Закрытие соединения № 0
ошибка: проблема с сертификатом SSL, проверьте, что сертификат CA в порядке. Подробности:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата при доступеhttps://github.com/username/ExcelANT.git/info/refs

fatal: HTTP request failed

Это проблема моего брандмауэра, Cygwin или как?

Я не установил HTTP-прокси в конфигурации Git, однако это ISA-сервер, который требует проверки подлинности NTLM, а не базового, поэтому, если кто-то не знает, как заставить git использовать NTLM, я расстроен.

 Nullpointer22 дек. 2015 г., 13:50
Если я установлю http.sslVerify false, то соединение будет безопасным? и это хороший путь для использования? В промежутке мы используем брандмауэр pfsense. сейчас файл .gitconfig в профиле пользователя пуст.

Ответы на вопрос(28)

Обратите внимание, что для того, чтобы это заработало (установка RVM на CentOS 5.6), мне нужно было выполнить следующее:

export GIT_SSL_NO_VERIFY=true

и после этого стандартная процедура установки для скручивания установщика RVM в bash сработала :)

 Nullpointer22 дек. 2015 г., 13:45
Если я установлю http.sslVerify false, то соединение будет безопасным? и это хороший путь для использования? В промежутке мы используем брандмауэр pfsense
 Doktor J09 февр. 2017 г., 21:03
@ Рави соединение будеттехнически работа да, но это однозначноне хорошая идея. Если ваш git origin и локальный компьютер являются внутренними и находятся под контролем вашей организации, это может бытьпроходимый, но, согласно комментарию пользователя 456814, отключение проверки открывает вас для атак MITM.
 Dyno Fu07 сент. 2011 г., 13:23
тот же эффект, что и в git config --global http.sslverify false
 user45681418 апр. 2014 г., 21:02
Это ОЧЕНЬ ОПАСНО! Весь смысл проверки SSL-сертификата состоит в том, чтобы защитить ваш код от подделки, когда вы передаете его по HTTPS! Отключение этого означает, что злоумышленники могут вставлять уязвимости и другие неприятные вещи в ваш код, когда вы нажимаете и извлекаете его!

Во-первых, запустите процедуры github и тест, который работал нормально для меня, показывая, что мой сертификат на самом деле был в порядке.https://help.github.com/articles/generating-ssh-keys

ssh -T [email protected]

Тогда я наконец заметил еще один формат URL для удаленных. Я попробовал другие, выше, и они не работали.http://git-scm.com/book/ch2-5.html

[email protected]:MyGithubUsername/MyRepoName.git

Простой "git push myRemoteName" работал отлично!

На CentOS 5.x, простойyum update openssl обновил пакет openssl, который обновил системуca-bundle.crt файл и исправил проблему для меня.

То же самое может быть верно для других дистрибутивов.

 Josh25 окт. 2013 г., 05:45
ням! Это сработало для меня для старой установки (4.1.2) Red Hat Linux. Спасибо!

кто использует Msys / MinGW GIT, добавьте это

  export GIT_SSL_CAINFO=/mingw32/ssl/certs/ca-bundle.crt 

Я исправил эту проблему, используякв-Лебедь (gr, eat installer похож на apt-get), чтобы легко скачатьча-сертификаты (включая Git и многое другое):

apt-cyg install ca-certificates

Заметка: apt-cyg должен быть сначала установлен. Вы можете сделать это из командной строки Windows:

cd c:\cygwin
setup.exe -q -P wget,tar,qawk,bzip2,subversion,vim

Закройте Windows cmd и откройте Cygwin Bash:

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin
 holdenlee20 окт. 2014 г., 02:29
Это не сработало для меня - я все еще получаю ту же ошибку.

Я попробовал все, в конце концов я посмотрел в файле hosts и там была случайная запись для github. Удаление псевдонима решило проблему

% SystemRoot% \ system32 \ Drivers \ Etc \ хостов

что вам нужно, это просто использовать git-клиент Cygwin с github.com, то есть гораздо более простой способ без необходимости загружать, извлекать, преобразовывать, разбивать файлы сертификатов. Действуйте следующим образом (я предполагаю, что Windows XP с Cygwin и Firefox)

В Firefox перейдите на страницу github (любую)нажмите на значок GitHub в адресной строке, чтобы отобразить сертификатНажмите «дополнительная информация» -> «показать сертификат» -> «детали» и выберите каждый узел в иерархии, начиная с самого верхнего; для каждого из них нажмите «Экспорт» и выберите формат PEM:GTECyberTrustGlobalRoot.pemDigiCertHighAssuranceEVRootCA.pemDigiCertHighAssuranceEVCA-1.pemgithub.com.pemСохраните вышеуказанные файлы где-нибудь на локальном диске, измените расширение на .pem и переместите их в / usr / ssl / certs в вашей установке Cygwin (Windows: c: \ cygwin \ ssl \ certs)(необязательно) Запустите c_reshash из bash.

Вот и все.

Конечно, это устанавливает только одну иерархию сертификатов, ту, которая вам нужна для github. Конечно, вы можете использовать этот метод с любым другим сайтом без необходимости устанавливать 200 сертификатов сайтов, которым вы (не обязательно) доверяете.

Я хотел, чтобы Git использовал обновленный пакет сертификатов, не заменяя тот, который использует вся моя система. Вот как Git использует определенный файл в моем домашнем каталоге:

mkdir ~/certs
curl http://curl.haxx.se/ca/cacert.pem -o ~/certs/cacert.pem

Теперь обновите.gitconfig использовать это для проверки сверстников:

[http]
sslCAinfo = /home/radium/certs/cacert.pem

Обратите внимание, я использую абсолютный путь. Git здесь не расширяет путь, поэтому вы не можете использовать~ без безобразного клуджа. Кроме того, вы можете пропустить файл конфигурации и установить путь с помощью переменной средыGIT_SSL_CAINFO вместо.

Чтобы устранить это, установитеGIT_CURL_VERBOSE=1, Путь к файлу CA, который использует Git, будет показан в строках, начинающихся с «CAfile:» в выходных данных.

 Aron Ahmadia25 окт. 2013 г., 23:24
Отличный ответ, вы можете пропустить ручное редактирование файла ~ / .gitconfig с помощью следующей команды:git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
 zhaozhi13 янв. 2014 г., 08:29
это решение отличное, простое и эффективное, оно работает на Red Hat
 Colin D Bennett22 авг. 2013 г., 06:21
+200 Более удивительно, это также работало на моей коробке Ubuntu. Не нужно отключать проверку сертификатов в git, просто сделайте это быстрое исправление.
 okliv12 июл. 2014 г., 13:35
!!! с комментарием @AronAhmadia - это ЛУЧШИЙ ОДИН ответ !!!
 Michael-O24 нояб. 2012 г., 13:24
Отлично, можно даже лучше. Я заменил мой старый/etc/ssl/certs/ca-certificates.crt на моем Ubuntu 8.04 LTS с этим файлом, и он волшебным образом работал!
 Brendon Muir10 дек. 2013 г., 01:55
Комментарий @ Michael-O наверняка является решением для Hardy 8.04. Красиво и легко в конце концов, лол!
 Nullpointer22 дек. 2015 г., 13:45
Если я установлю http.sslVerify false, то соединение будет безопасным? и это хороший путь для использования? В промежутке мы используем брандмауэр pfsense.
 atomicules09 апр. 2013 г., 16:53
@ Эрик, спасибо, что упомянул NetBSD, так как это означало, что я нашел этот ответ. NetBSD немного странный. Я установил пакет OpenSSL, но даже это не дает вам сертификаты, просто каталог местозаполнителей.
 Eric09 февр. 2012 г., 05:32
Для меня это лучший ответ: он работает на Unix (на самом деле NetBSD), он влияет только на git, а не на что-либо еще в системе, и не требует доступа root / Administrator. Спасибо!

apt-get установить ca-сертификаты

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

Чтобы решить это:

Я обновил версию Curl, установленную на сервере. Скачать последнюю версию на сайтеСкачать страницу локонаи следуйте инструкциям по установкеИнсталляционный процесс curl

Возвратите сертификат органа, который доставляет сертификат для сервера.

Добавьте этот сертификат в файл CAcert, используемый curl. На моем сервере он находится в/etc/pki/tls/certs/ca-bundle.crt.

Сконфигурируйте git для использования этого файла сертификата, отредактировав файл .gitconfig и установив путь sslcainfo.sslcainfo= /etc/pki/tls/certs/ca-bundle.crt

На клиентском компьютере вы должны получить сертификат и настроить файл .gitconfig.

Я надеюсь, что это поможет некоторым из вас.

Если вы работаете в Mac OS X, вы можете установить пакет ca-cert черезhomebrew:

$ brew install curl-ca-bundle
$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

формула устанавливает пакет сертификатов к вашей папке через:

share.install 'ca-bundle.crt'

share Метод просто псевдоним/usr/local/shareизавиток-ч-расслоение обеспечиваетсяMozilla, Это то, на что вы видите ссылки во многих вопросах. Надеюсь, это поможет, поскольку не совсем понятно, как это сделать в Mac OS X.brew install curl не принесет вам много, так как этотолько кеги и не будут связаны (Бегwhich curl всегда будет выводить/usr/bin/curl, который по умолчанию поставляется с вашей ОС).Этот пост также может иметь определенную ценность.

Вам, конечно, нужно будет отключить SSL перед установкойhomebrew так как это мерзавец репо. Просто сделайте то, что говорит curl, когда он выдает ошибку во время проверки SSL и:

$ echo insecure >> ~/.curlrc

Как только вы получитеhomebrew установлен вместе сcurl-ca-bundle, удалять.curlrc и попробуйте клонировать репо на github. Убедитесь, что ошибок нет, и вам будет хорошо.

НОТА: Если вы прибегаете к.curlrcпожалуйста, удалите его из вашей системы, как только вы закончите тестирование. Этот файл может вызвать серьезные проблемы, поэтому используйте его во временных целях и с осторожностью.brew doctor будет жаловаться, если вы забудете удалить его из вашей системы).

НОТА: Если вы обновите свою версию git, вам нужно будет повторно запустить эту команду, поскольку ваши системные настройки будут удалены (они хранятся относительно двоичного файла git в зависимости от версии).

Итак, после запуска:

$ brew update
$ brew upgrade

Если вы получили новую версию git, просто перезапустите:

$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

И у тебя все будет готово.

Наконец, если у вас есть новая версия git, запустите:

$ git config -l --system

должен дать вам ошибку в соответствии с

fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'

это ваш совет, который вы должны сказать git, где находится пакет Mozilla.

ОБНОВИТЬ:

.curlrc может или не может быть решением вашей проблемы. В любом случае, просто установите пакет Mozilla, установленный на вашем компьютере, независимо от того, нужно ли вам загружать его вручную или нет. Вот что здесь важно. Как только вы получите пакет, вы готовы. Просто запустите команду git config и укажите git на пакет ca-bundle.

ОБНОВИТЬ

Мне недавно пришлось добавить:

export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt к моему.zshenv точечный файл, так как я используюzsh,git config опция работала в большинстве случаев, но при попадании в github по SSL (rvm get stable например), я все еще сталкивался с проблемами сертификата. @Maverick указал на это в своем комментарии, но на случай, если кто-то пропустит это или предположит, что им не обязательно экспортировать эту переменную среды в дополнение к выполнениюgit config --system.... команда. Спасибо и надеюсь, что это поможет.

ОБНОВИТЬ

Похоже,завиток-ч-расслоение былонедавно сняли с доморощенного, Eстьрекомендация здесь.

Вы хотите добавить некоторые файлы в:

$(brew --prefix)/etc/openssl/certs

 Skylar Saveland07 авг. 2013 г., 21:20
это хорошо сработало для меня. Спасибо. (извините, ТАК текст заполнителя, который говорит, что не следует использовать комментарии для благодарности или +1 - как еще люди узнают, что это мой любимый ответ?).
 A-Dubb11 янв. 2014 г., 20:06
@ Матье, это довольно странно. Похоже, ваша система указывает на версию git относительно XCode. Каков результат запуска 'which git' с вашего терминала?
 Maverick15 авг. 2013 г., 19:11
Вы также можете попробовать следующее:export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
 Mathieu05 янв. 2014 г., 23:32
Привет у меня похожая проблема (stackoverflow.com/questions/20939105/...) и та же проблема появляется, когда я пытаюсь установить home-brew. Что я могу сделать в этом случае? Ввод "git config --system http.sslcainfo /usr/local/share/ca-bundle.crt" в моей консоли возвращает "ошибку: не удалось заблокировать файл конфигурации /Applications/Xcode.app/Contents/Developer/usr/etc/ gitconfig: нет такого файла или каталога ". Спасибо за помощь!

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

Я абсолютно отказался сделать свои операции git небезопасными, и после того, как все люди, упомянутые здесь, попробовали, меня поразило, что одной из возможных причин, по которой сертификаты не проходят проверку, является неправильная дата (либо дата истечения срока действия сертификата, либоместный Часы).

Вы можете легко проверить это, набравdate в терминале. В моем случае (новый Raspberry Pi) местные часы были установлены на 1970, так что простоntpdate -u 0.ubuntu.pool.ntp.org все исправил. Для rPi я бы также рекомендовал включить следующий скрипт в ежедневную работу cron (скажем,/etc/cron.daily/ntpdate):

#!/bin/sh
/usr/sbin/ntpdate -u 0.ubuntu.pool.ntp.org 1> /dev/null 2>&1
 tommybananas03 апр. 2015 г., 20:47
Огромное спасибо..

поэтому я сделал то, что написал @esquifit. Однако мне пришлось выполнить шаг 5 вручную, c_rehash не был доступен в моей системе. Я следовал этому руководству:Установка сертификатов CA в каркас OpenSSL вместо.

 Sonata29 окт. 2015 г., 18:28
почему голосование против?

Очень простое решение:замените https: // на git: //

Используйте git: //the.repository вместоhttps: //the.repository и будет работать.

У меня была эта проблема на Windows с TortoiseGit, и это решило ее.

 neteinstein12 янв. 2015 г., 16:47
Просто сэкономил мне много часов гуглить ...
 user45681418 апр. 2014 г., 21:27
@danijar причина, почему это работает, потому чтоон даже не использует SSL вообще,git:// Протокол использует SSH, который использует пары открытого и закрытого ключей SSH для аутентификации и шифрования вместо SSL-сертификата.
 nyuszika7h24 мая 2014 г., 13:58
@Cupcakegit:// делаетне использовать SSH. УвидетьПротокол SSH а такжеПротокол Git.
 danijar17 февр. 2014 г., 02:03
Я думаю, это работает, потому что он не проверяет SSL дляgit://, Как указано вэтот ответ выше, отключение проверки SSL является угрозой безопасности.
 user45681424 мая 2014 г., 14:05
@ nyuszika7h ты прав. Я продолжаю получатьgit:// путать с[email protected]:user/project.git, который является синтаксисом SCP-ish.
 danijar18 апр. 2014 г., 22:31
@Cupcake Спасибо за указание на это.

я некоторое время, но я сумел найти, где нужно разместить сертификаты. Согласно /etc/openssl/openssl.cnf, путь к сертификатам - / etc / openssl / certs. Я разместил сертификаты, сгенерированные с использованием вышеуказанного совета от Алексея.

Вы можете проверить, что все работает, используя openssl в командной строке:

openssl s_client -connect github.com:443

У меня недавно (июль 2014 г.) была похожая проблема, и я обнаружил в OS X (10.9.4), что срок действия сертификата «DigiCert High Assurance EV Root CA» истек (хотя у меня был и другой, срок действия которого еще не истек).

Открытый доступ к брелкупоиск сертификатов для "DigiCert"Меню «Вид»> Показать просроченные сертификаты

Я нашел два сертификата, названных «DigiCert High Assurance EV Root CA», один из которых истекает ноябрь 2031 года и один истек в июле 2014 года (несколько дней назад). Удаление просроченного сертификата решило проблему для меня.

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

он будет аутентифицироваться через https. Создать файл вызова.netrc в вашем домашнем каталоге и поместите это в него:

machine github.com login myusername password mypass

Смотрите этот пост для получения дополнительной информации:

https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj

 Charles Duffy30 окт. 2012 г., 20:10
Это проблема проверки сертификата, а не проверки подлинности - в некоторых операционных системах (включая ту, в которой работает OP) нет CA, выдающего новый сертификат github, включенного в список акций.

l-проверки не работали. Оказалось, что срок действия пароля для сетевого прокси истек. Была запись о настройке прокси. в файле .gitconfig присутствует в моем профиле пользователя Windows. Я просто удалил всю запись, и она снова начала работать.

что в вашей системе не установлены какие-либо сертификаты удостоверяющего центра. И эти сертификаты не могут быть установлены с помощью setup.exe cygwin.

Обновить:Установите пакет Net / CA-Certificates в Cygwin (спасибо, Диркджот)

Есть два решения:

Собственно установите корневые сертификаты.Керл ребята извлекли для вас сертификаты от Mozilla.

cacert.pem Файл - это то, что вы ищете. Этот файл содержит> 250 сертификатов CA (не знаю, как доверять этому количеству госзакупок). Вам необходимо скачать этот файл, разделить его на отдельные сертификаты, поместить их в / usr / ssl / certs (ваш CApath) и проиндексировать их.

Вот как это сделать. С помощью cygwin setup.exe установите пакеты curl и openssl:

$ cd /usr/ssl/certs
$ curl http://curl.haxx.se/ca/cacert.pem |
  awk '{print > "cert" (1+n) ".pem"} /-----END CERTIFICATE-----/ {n++}'
$ c_rehash

Важный: Для использованияc_rehash Вы должны установитьopenssl-perl тоже.

Игнорировать проверку сертификата SSL.

ВНИМАНИЕ: Отключение проверки SSL-сертификата имеет последствия для безопасности. Без проверки подлинности соединений SSL / HTTPS злоумышленник может выдать себя за доверенную конечную точку (например, GitHub или другой удаленный хост Git), и вы будете уязвимы дляАтака "Человек посередине". Убедитесь, что вы полностью понимаете проблемы безопасностиа также Ваша модель угрозы, прежде чем использовать это в качестве решения.

$ env GIT_SSL_NO_VERIFY=true git clone https://github...
 Peter Wagenet04 мая 2011 г., 06:17
@Deebster, это сработало бы, если бы wget был установлен по умолчанию, что для меня не так.
 Tim19 июн. 2013 г., 18:30
Не отключайте проверку SSL-сертификата. Это случается слишком часто в инструментах и ​​коде приложения по всей отрасли. Это открывает вам человека в середине атаки. Если вы собираетесь использовать SSL, то используйте его правильно.
 Poonam Bhatt16 окт. 2013 г., 13:52
$ env GIT_SSL_NO_VERIFY = истинный клон gitGitHub... это сработало, спасибо
 Ilkka17 окт. 2012 г., 16:01
В моем случае это не сработало, ноэто решение сделал, с той разницей, что, так как git искал файл в /usr/ssl/certs/ca-bundle.crt, это было то, где я его положил.
 MarcH29 авг. 2011 г., 20:04
В качестве альтернативы вы можете извлечь все сертификаты из Firefox (используя плагин), а затем преобразовать их из DER в формат PEM следующим образом:for i in *.der; do openssl.exe x509 -text -inform DER -fingerprint < "$i" > /usr/ssl/certs/"${i%.der}.pem"; done Наконец запуститьc_rehash и работа сделана
 eckes10 янв. 2013 г., 20:13
Я бы не стал добавлять такой большой пакет корневых сертификатов, а только сертификат CA или сервера этого конкретного репозитория. Сopenssl s_client --printcerts --connect server:port Например, вы можете получить дамп PEM сертификата любого SSL-сервера.
 squidpickles24 мар. 2016 г., 19:05
Расщепление сawk может быть сложным; Вы также можете использоватьsplit -p "-----BEGIN CERTIFICATE-----" [filename]
 Nullpointer22 дек. 2015 г., 13:51
Если я установлю http.sslVerify false, то соединение будет безопасным? и это хороший путь для использования? В промежутке мы используем брандмауэр pfsense. сейчас файл .gitconfig в профиле пользователя пуст.
 Deebster08 мар. 2011 г., 17:03
Вам не нужно устанавливать curl, просто используйте wget:wget -O - http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_a fter=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
 O. R. Mapper23 июн. 2013 г., 18:03
c_rehash команда продолжает говоритьbad interpreter: permission denied для меня, поэтому я не могу применить это решение: - /
 iurii10 апр. 2014 г., 14:37
curl шаг от ответа не работал для меня так -awk жаловался на синтаксическую ошибку. Мне пришлось немного его изменить:curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1 {n++; split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print >> ("cert" n ".pem"); close("cert" n ".pem")}', С помощьюawk version 20070501 и Mac OS X 10.9.2.
 Doug J. Huras21 февр. 2014 г., 18:24
Просто чтобы уточнить комментарии выше ... В Win7 я установил переменную окружения ... "set GIT_SSL_NO_VERIFY = true", а затем использовал оболочку bash для msysgit для клонирования репозитория.
 pedz22 апр. 2014 г., 01:49
git использует libcurl, который использует openssl (по крайней мере, в версии, которую я создал). Если вы создаете свои собственные версии вещей, то libcurl меняет то, где ищет сертификаты CA. Используйте параметр конфигурации --with-ca-path = DIR при настройке curl и укажите его, куда openssl помещает сертификаты.
 makriria29 мар. 2013 г., 15:30
Это сработало для меня. Перед запуском c_rehash потребовалась yum install openssl-perl (в сантистах)
 Andrew27 февр. 2014 г., 06:29
Большое вам спасибо, это исправило это для меня. Эта информация (c_rehash) отсутствует в других сообщениях.
 Doug J. Huras21 февр. 2014 г., 18:17
В Win7 ... установите GIT_SSL_NO_VERIFY = true
 rurban27 дек. 2012 г., 21:43
Этот ответ неверен. Просто установите Cygwinca-certificates пакет, чтобы получить недостающие корневые сертификаты. Почему этот ответ получил так много взлетов?
 jah28 сент. 2011 г., 17:05
Мне пришлосьexport OPENSSL=/c/OpenSSL/bin/openssl.exe чтобы c_rehash находил openssl - он жаловался на отсутствие C: \ OpenSSL при использовании из cygwin
 Jorgesys03 мар. 2016 г., 21:45
Решение 1 должно быть удалено !, установите GIT_SSL_NO_VERIFY = true - Тогда почему цель SSL?
 sequoia mcdowell21 авг. 2011 г., 21:43
Я знаю, что это Cygwin, но в случае, если кто-то попадет сюда с помощью Centos, это / etc / pki / tls / certs, куда должны идти .pem.
 Alexey Vishentsev29 сент. 2011 г., 00:55
@glenviewjeff cygwin имеет свой собственный пакет openssl с c_rehash, может быть установлен с помощью cygwin setup.exe. Однако проблема с информацией / ссылками, я думаю, другая: попробуйте поиграть с URL, вы переходите на git
 Robin Winslow14 февр. 2012 г., 17:15
Я предпочитаю решение поставить[http] sslVerify = no в вашем глобальном .gitconfig. Посмотреть здесь:linux.die.net/man/1/git-config
 Jeff Axelrod09 сент. 2011 г., 19:32
У меня не сработало - однако у меня на пути нет c_rehash. Я попытался перезапустить мою оболочку. Я также должен был mkdir -p / usr / ssl / certs. Мне интересно, если моя установка Cygwin отличается или что-то не хватает? Кроме того, установка GIT_SSL_NO_VERIFY = true с последующим выполнением операции клонирования привела к этой ошибке:fatal: https://code.google.com/.../info/refs not found: did you run git update-server-info on the server? Может, будет работать после перезагрузки?
 Hamish Downer03 июн. 2013 г., 17:22
И для всех, кто использует Debian / Ubuntu, сертификаты хранятся в/etc/ssl/certs/

Проблема в том, что в вашей системе не установлены какие-либо сертификаты удостоверяющего центра. И эти сертификаты не могут быть установлены с помощью setup.exe cygwin.

Однако последнее утверждение неверно (сейчас или всегда так было, я не знаю).

Все, что вам нужно сделать, это перейти к настройке Cygwin и включить пакет «ca-сертификаты» (он находится в сети). Это помогло мне.

 221b03 дек. 2015 г., 05:08
Где именно мы устанавливаем установочные файлы cygwin из менеджера пакетов? Должны ли CA-сертификаты находиться в папке bin Git?
 221b03 дек. 2015 г., 09:38
@dirkjot Спасибо, сэр!
 dirkjot03 дек. 2015 г., 06:55
@ user1650978: вы должны использовать установщик cygwin (с именем setup.exe) и установить этот дополнительный пакет. Это все. Не нужно копировать файлы и / или указывать места назначения.
 dirkjot28 янв. 2013 г., 12:48
@maxpolk: я бы сделал ссылку, но эффект тот же. Это явно ошибка в Cygwin Git, вы думали поднять билет?sudo ln -s /usr/ssl/certs/ca-bundle.crt /etc/ssl/
 maxpolk12 янв. 2013 г., 20:30
ошибка Cygwin Git показываетCAfile: /etc/ssl/ca-bundle.crt тогда как Cygwin CA-Certificates устанавливает/usr/ssl/certs/ca-bundle.crt, Поэтому пришлось редактировать~/.gitconfig указать местоположение:[http] затемsslCAinfo = /usr/ssl/certs/ca-bundle.crt
 bobbogo23 мая 2013 г., 21:41
На сегодняшний день 2013-5-23, Cygwin Git отлично работает по https: если у вас также есть / не забудьте установить Cygwin'sca-certificates.
 O. R. Mapper23 июн. 2013 г., 18:24
Я получил здесь отэтот вопрос, который указал, что ответ можно найти здесь. Однако ни связанный ответ, ни этот ответ не работают для меня; TortoiseSVN продолжает выводитьerror: SSL certificate problem, verify that the CA cert is OK.

Замечания:отключение проверки SSL имеет последствия для безопасности, Он позволяет атаковать Man in the Middle, когда вы используете Git для передачи данных по сети. Убедитесь, что вы полностью понимаете последствия для безопасности, прежде чем использовать это в качестве решения. Или еще лучше, установите корневые сертификаты.

Одним из способов является отключение проверки SSL CERT:

git config --global http.sslVerify false

Это помешает CURL подтвердить подлинность HTTPS.

Только для одного репозитория:

git config http.sslVerify false
 Peter Stegnar18 мар. 2014 г., 08:38
Для всех "не делай этого" люди: Конечно, это не самый безопасный подход вообще. НО, это гораздо лучший вариант, чтобы вообще не иметь SSL! Потому что некоторые люди запускают только свои частные простые git-серверы, это им подходит. Конечно, для любой реальной безопасности это не установка. Самая небезопасная вещь - отправка простых байтов через сеть.
 Mark Carey10 мая 2013 г., 06:06
это ужасная идея Есть причина, по которой сертификаты должны быть проверены. если вы не подтвердите сертификат как доверенный, тогда этот сертификат может быть сгенерирован кем-либо, и вы будете подвержены атаке посредника.
 pedz22 апр. 2014 г., 01:07
Единственная надежда - это нажать вниз.
 Tim19 июн. 2013 г., 18:31
Не отключайте проверку SSL!
 Nullpointer22 дек. 2015 г., 13:46
Если я установлю http.sslVerify false, то соединение будет безопасным? и это хороший путь для использования? В промежутке мы используем брандмауэр pfsense
 Erin31 окт. 2012 г., 15:52
Если вы не хотите редактировать свои глобальные настройки (например, все репозитории), исключите --global
 Emil Lundberg07 июл. 2015 г., 11:57
@PeterStegnar Нет, этоне "гораздо лучший вариант". В лучшем случае это немного лучше. Любой, кто может перехватывать и обрабатывать ваши незашифрованные байты HTTP, можеттакже перехватите и замените сертификат, а затем прочитайте и манипулируйте своими байтами зашифрованного текста HTTPS после расшифровки их с помощью сертификата самозванца. Единственное, что вы получаете от использования SSL / TLS без проверки сертификатов, - это то, что содержимое трафика скрыто отпассивный слушатели, но любой активный противник будет лишь слегка неудобен.
 Bruno05 сент. 2014 г., 01:10
@ Halfer Почему редактировать? (а) Это была заметка редактора, это не была записка от первоначального автора, и (б) нет ничего плохого в том, чтобы предупреждать людей немного жестче, в противном случае люди склонны игнорировать проблемы (вам просто нужно посмотреть на количество положительных голосов) на этот ответ, который рекомендует небезопасное решение ...)
 user45681420 июл. 2014 г., 21:04
@TravisWhidden необходимо иметь четкое предупреждение о последствиях для безопасности. Который это делает теперь, так как я редактировал это некоторое время назад.
 Mrchief05 июн. 2014 г., 17:08
Вселенная стремится следоватьпуть наименьшего сопротивления.
 Ishan Liyanage07 окт. 2013 г., 08:38
Пожалуйста, сделайте это, если у вас нет другого выбора. Это очень опасно, если вы не знаете, что делаете
 tmn25 июн. 2015 г., 16:23
Снижается ли риск, если я нахожусь за доверенным межсетевым экраном, поддерживаемым крупной межсетевой защитой?
 Braiam03 мая 2019 г., 22:38
@RicardoSilva на тот момент, что вообще использует ssl?
 Chronial17 апр. 2013 г., 00:53
не могли бы вы добавить примечание о том, насколько это опасно?
 James DeRagon17 февр. 2015 г., 17:51
В значительной степени то, что сказано выше. Иметь работу, которую нужно подтолкнуть, может быть, Google и возиться с вещами в течение часа, и я не могу понять это, ну, работа должна быть выполнена, sslverify = false и отправить мне электронное письмо в ИТ, если они заботятся об этом или не.
 aroth12 апр. 2014 г., 16:17
Если SSL-проверка хочет быть включена, то кто-то должен придумать способ заставить ее работать без необходимости устанавливать корневые сертификаты вручную. Возможно, если бы они просто пришли в комплекте с git или чем-то еще, это решило бы эту проблему.
 Nullpointer22 дек. 2015 г., 13:51
Если я установлю http.sslVerify false, то соединение будет безопасным? и это хороший путь для использования? В промежутке мы используем брандмауэр pfsense. сейчас файл .gitconfig в профиле пользователя пуст.
 Ricardo Silva06 нояб. 2017 г., 11:53
Однако есть один момент: если у вас есть внутренний git-сервер и вы знаете, что работаете за брандмауэрами, возможно, нет необходимости проверять сертификаты, потому что это не может быть связано с риском.
 Glenn Maynard17 апр. 2014 г., 23:17
Этот ответ должен быть удален. Это привело к тому, что как минимум 247 человек поступили неправильно.
 TravisWhidden19 июн. 2014 г., 00:24
Для тех, у кого есть частный сервер с самозаверяющим сертификатом, это поможет. Парень предлагает решение .. не все согласятся, но это может решить чью-то проблему. Вот о чем этот сайт. StackOverflow полон мнений - не все согласятся с идеями и решениями других. Сказать, что это должно быть удалено, это безумие.
 nyuszika7h24 мая 2014 г., 14:00
Он не «отключает» SSL, вы все еще используете безопасное соединение, но нет подтверждения, что вы действительно подключены к правильному серверу.
 halfer05 сент. 2014 г., 01:21
Привет @ Бруно. Я бы поспорил, что наши руководящие принципы редактирования (поскольку они у нас вообще есть) не позволят людям вносить изменения, помеченные как принадлежащие третьей стороне (например, «Редактировать из Halfer», «Примечание редактора», «(Ред)» и т. Д. все будет обескуражен). я точно уверенлюбой Дополнения «Редактировать» не приветствуются, если подумать - они предназначены для слияния с оригинальным постом. Это было рассмотрено на MSO, iirc.
 Brian Knoblauch18 нояб. 2014 г., 19:03
Рад найти этот ответ. У нас есть настоящий сертификат CA, выданный на нашем сервере, но по какой-то причине git из командной строки (от которого зависит Android Studio) отказывается подтверждать его сейчас (раньше это было, но больше нет). Visual Studio и Netbeans прекрасно распознают наш сертификат, но, похоже, что-то не работает в git. Я пытался использовать Netbeans для продвижения Android Studio, но это было бесполезно. Это единственный способ, которым я смог продвинуть свою работу.
 Bruno05 сент. 2014 г., 01:27
@ Halfer Есть ли правила редактирования, которые так говорят? я мог бымного предпочли бы, чтобы такая заметка была четко помечена как поступающая от стороннего редактора, чтобы было ясно, что первоначальный автор может не одобрить ее (по крайней мере, из уважения к автору). Что касается смелости, опять же, большие предупреждения не плохая вещь для проблемы безопасности. Это довольно печальный факт для SO, что в настоящее время это 4-й самый голосующий ответ наssl тег, но это предлагает небезопасное решение :-(

Я знаю оригинальные списки вопросов Cygwin, но вот решение для CentOS:

curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

Источник:http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/

 raarts21 июн. 2016 г., 19:14
На CentOS 5 я исправил этоyum update openssl, который также обновляет ca-bundle.
 Evan Donovan06 мар. 2012 г., 00:07
Это отлично сработало для меня; вы, вероятно, должны сначала сделать резервную копию оригинала, как предполагает OP. Похоже, это происходит, когда Github обновляет свой сертификат, если вы работаете в системе, которая имеет более старую версию.
 kbolino22 мар. 2018 г., 19:56
если вы собираетесь использовать эту опцию, вам следует проверить хэш SHA-256 файла перед его использованием. Вы можете получитьsha256sum для текущего файла отнекоторые другие средства, кроме завитка, который вы настраиваете (например, браузер на другом компьютере, который уже настроен надежно), а затем сравните его с выводомsha256sum /etc/pki/tls/certs/ca-bundle.crt чтобы убедиться, что вы получили правильный файл.

Улучшите решение RouMao, временно отключив проверку GIT / curl ssl в Windows cmd:

set GIT_SSL_NO_VERIFY=true
git config --global http.proxy http://<your-proxy>:443

Преимущество этого решения в том, что оно действует только в текущем окне cmd.

 user45681418 апр. 2014 г., 21:04
Это ОЧЕНЬ ОПАСНО! Весь смысл проверки SSL-сертификата состоит в том, чтобы защитить ваш код от подделки, когда вы передаете его по HTTPS! Отключение этого означает, что злоумышленники могут вставлять уязвимости и другие неприятные вещи в ваш код, когда вы нажимаете и извлекаете его!

pi @ raspbmc: ~ $ git clone http: //github.com/andreafabrizi/Dropbox-Uploader .git Клонирование в «Dropbox-Uploader» ... ошибка: проблема с сертификатом SSL CA (путь? права доступа?) при доступе http: // github.com/andreafabrizi/Dropbox-Uploader.git/info/refs неустранимый: HTTP-запрос не выполнен

так что

sudo apt-get install ca-certificates

затем

git clone http://github.com/andreafabrizi/Dropbox-Uploader.git  

работал

пойти в Cygwinнастроить и включить пакет "CA-сертификаты'(он находится в сети) (как указано в другом месте).

Скажите git, где найти установленные сертификаты:

GIT_SSL_CAINFO = / USR / SSL / сертификаты / CA-bundle.crt GIT_CURL_VERBOSE = 1 гит ...

(Подробный вариант не нужен)

Или сохранить опцию навсегда:

конфиг --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt

мерзавец ...

Решение Вопроса

Не стесняйтесь пропустить этот ответ, если хотите исправить проблему с сертификатами. Этот ответ касается туннелирования ssh через брандмауэр, который является ИМХО лучшим решением для работы с вещами брандмауэра / прокси.

Существует лучший способ, чем использование доступа по протоколу http, а именно использование службы ssh, предлагаемой github на порте 443 сервера ssh.github.com.

Мы используем инструмент под названием штопор. Это доступно как для CygWin (через настройку с домашней страницы cygwin), так и для Linux с использованием вашего любимого инструмента упаковки. Для MacOSX это доступно от macports и варит по крайней мере.

Командная строка выглядит следующим образом:

$ corkscrew <proxyhost> <proxyport> <targethost> <targetport> <authfile>

Proxyhost и proxyport являются координатами прокси https. Targethost и targetport - это местоположение хоста для туннелирования. Authfile - это текстовый файл с 1 строкой, содержащей имя пользователя и пароль прокси-сервера, разделенные двоеточием.

например:

abc:very_secret

Установка для использования "нормального" протокола ssh для git-коммуникации

Добавив это к~/.ssh/config этот прием можно использовать для обычных соединений ssh.

Host github.com
  HostName ssh.github.com
  Port 443
  User git
  ProxyCommand corkscrew <proxyhost> <proxyport> %h %p ~/.ssh/proxy_auth

теперь вы можете проверить его работоспособность, используя ssh-ing для gitproxy

[email protected]:~$ ssh github.com
PTY allocation request failed on channel 0
Hi ptillemans! You've successfully authenticated, but GitHub does not provide shell access.
       Connection to github.com closed.
[email protected]:~$

(Примечание: если вы никогда ранее не входили в github, ssh попросит добавить ключ сервера в файл известных хостов. Если вы параноик, рекомендуется проверить отпечаток RSA на тот, который показан на сайте github, где вы загрузил ваш ключ).

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

# 
# account dedicated for the ACME private github account 
#
Host acme.github.com
  User git
  HostName ssh.github.com
  Port 443
  ProxyCommand corkscrew <proxyhost> <3128> %h %p ~/.ssh/proxy_auth
  IdentityFile ~/.ssh/id_dsa_acme

наслаждаться!

Мы использовали это в течение многих лет на Linux, Mac и Windows.

Если ты хочешь, ты можешьУзнайте больше об этом в этом блоге

 oharab14 июл. 2011 г., 15:39
Я разочаровался в том, чтобы заставить это работать, но еще раз взглянул на это, и заставил это работать. изменив .ssh / config на>Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa    и клонирование с использованием git clone[email protected]:oharab/log4vba.git получил его и работает в кратчайшие сроки.
 oharab14 июл. 2011 г., 15:45
Извините за форматирование, я не могу заставить его работать!
 Peter Tillemans16 янв. 2013 г., 10:53
В любом случае я обновил ответ, поскольку обнаружил, что туннелирование SSL через прокси-сервер https по-прежнему является лучшим решением, чем возиться с сертификатами HTTPS или отключать их, и в итоге получить решение, которое все еще менее производительно, удобно для пользователя и менее безопасно. Ну, множество откровений доказывают, что я не прав, но я все равно придерживаюсь своего мнения в этом вопросе.
 mjaggard19 дек. 2012 г., 11:01
Я только опускаю голос, потому что ответ ниже более полезен, но, к сожалению, stackoverflow всегда ставит принятый ответ на первое место, даже если это был ответ только для одного обстоятельства.

Чтобы клонировать Windows при настройке SSL, проверьте значение false:

    git -c http.sslVerify=false clone http://example.com/e.git

Если вы хотите клонироватьбез радуя ваши глобальные настройки.

Ваш ответ на вопрос