Я застрял за брандмауэром, поэтому мне нужно использовать HTTPS для доступа к моему репозиторию GitHub. Я использую Cygwin 1.7.7 на Windows XP.
Я попытался установить для пульта дистанционного управления https://username@github.com/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: сбой проверки сертификата
* Истек срок действия очищен
* Закрытие соединения # 0
* Об установлении соединения () с портом 443 github.com (# 0)
* При попытке 207.97.227.239 ... * успешно установить сертификат проверьте расположение:
* CAfile: нет
CApath: / usr / ssl / certs
* Проблема с сертификатом SSL, убедитесь, что сертификат CA в порядке. Подробности:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата
* Истек срок действия очищен
*
Ошибка закрытия соединения № 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, я расстроен.
Ответы:
Не стесняйтесь пропустить этот ответ, если хотите исправить проблему с сертификатами. Этот ответ касается туннелирования ssh через брандмауэр, который является ИМХО лучшим решением для работы с вещами брандмауэра / прокси.
Существует лучший способ, чем использование доступа по протоколу http, а именно использование службы ssh, предлагаемой github на порту 443 сервера ssh.github.com.
Мы используем инструмент под названием штопор. Это доступно как для CygWin (через установку с домашней страницы cygwin), так и для Linux с использованием вашего любимого инструмента упаковки. Для MacOSX это доступно от macports и варится по крайней мере.
Командная строка выглядит следующим образом:
Proxyhost и proxyport являются координатами прокси https. Targethost и targetport - это местоположение хоста для туннелирования. Authfile - это текстовый файл с 1 строкой, содержащей имя пользователя и пароль прокси-сервера, разделенные двоеточием.
например:
Установка для использования "нормального" протокола ssh для git-коммуникации
Добавив это в
~/.ssh/config
этот трюк, можно использовать для обычных соединений SSH.теперь вы можете проверить его работоспособность, используя ssh-ing для gitproxy
(Примечание: если вы никогда ранее не входили в github, ssh попросит добавить ключ сервера в файл известных хостов. Если вы параноик, рекомендуется проверить отпечаток RSA на тот, который показан на сайте github, где вы загрузил ваш ключ).
Небольшой вариант этого метода - случай, когда вам нужен доступ к хранилищу с другим ключом, например, для отделения вашей личной учетной записи от вашей профессиональной учетной записи.
наслаждаться!
Мы уже несколько лет используем это на Linux, Mac и Windows.
Если вы хотите, вы можете прочитать больше об этом в этом блоге
источник
Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa
и клонировав его с помощью git clone,git@ssh.github.com:oharab/log4vba.git
он быстро заработал и запустился.Проблема в том, что в вашей системе не установлены какие-либо сертификаты удостоверяющего центра. И эти сертификаты не могут быть установлены с помощью setup.exe cygwin.
Обновление: установите пакет Net / CA-Certificates в cygwin (спасибо, dirkjot)
Есть два решения:
Собственно установите корневые сертификаты. Керл, ребята, извлекли для вас сертификаты от Mozilla .
cacert.pem
Файл - это то, что вы ищете. Этот файл содержит> 250 сертификатов CA (не знаю, как доверять этому количеству госзакупок). Вам необходимо скачать этот файл, разделить его на отдельные сертификаты, поместить их в / usr / ssl / certs (ваш CApath) и проиндексировать их.Вот как это сделать. С помощью cygwin setup.exe установите пакеты curl и openssl:
Важно : для использования
c_rehash
вы должны установитьopenssl-perl
тоже.Игнорировать проверку сертификата SSL.
ВНИМАНИЕ: Отключение проверки SSL-сертификата имеет последствия для безопасности. Без проверки подлинности соединений SSL / HTTPS злоумышленник может выдать себя за доверенную конечную точку (например, GitHub или какой-либо другой удаленный хост Git), и вы будете уязвимы для атаки «человек посередине» . Убедитесь, что вы полностью понимаете проблемы безопасности и свою модель угроз, прежде чем использовать это в качестве решения.
источник
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"}'
fatal: https://code.google.com/.../info/refs not found: did you run git update-server-info on the server?
Может быть, она будет работать после перезагрузки?ca-certificates
пакет cygwin , чтобы получить недостающие корневые сертификаты. Почему этот ответ получил так много взлетов?Примечание: отключение проверки SSL имеет последствия для безопасности . Он позволяет атаковать Man in the Middle, когда вы используете Git для передачи данных по сети. Убедитесь, что вы полностью понимаете последствия для безопасности, прежде чем использовать это в качестве решения. Или еще лучше, установите корневые сертификаты.
Одним из способов является отключение проверки SSL CERT:
Это не позволит CURL подтвердить подлинность HTTPS.
Только для одного репозитория:
источник
Я хотел, чтобы Git использовал обновленный пакет сертификатов, не заменяя тот, который использует вся моя система. Вот как Git использует определенный файл в моем домашнем каталоге:
Теперь обновите,
.gitconfig
чтобы использовать это для одноранговой проверки:Обратите внимание, я использую абсолютный путь. Git здесь не расширяет путь, так что вы не сможете использовать его
~
без уродливого клуджа. Кроме того, вы можете пропустить файл конфигурации и установить путь с помощью переменной средыGIT_SSL_CAINFO
.Чтобы устранить это, установите
GIT_CURL_VERBOSE=1
. Путь к файлу CA, который использует Git, будет показан в строках, начинающихся с «CAfile:» в выходных данных.источник
/etc/ssl/certs/ca-certificates.crt
на Ubuntu 8.04 LTS этим файлом, и он волшебным образом сработал!git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
Обратите внимание, что для того, чтобы это работало (установка RVM на CentOS 5.6), мне нужно было выполнить следующее:
export GIT_SSL_NO_VERIFY=true
и после этого стандартная процедура установки для скручивания установщика RVM в bash сработала :)
источник
Очень простое решение: замените https: // на git: //
Используйте git: //the.repository вместо https: //the.repository и будет работать.
У меня была эта проблема на Windows с TortoiseGit, и это решило ее.
источник
git://
. Как указано в этом ответе выше , отключение проверки SSL является угрозой безопасности.git://
Протокол использует SSH, который использует SSH государственные и частные пары ключей для аутентификации и шифрования, вместо сертификата SSL.git://
вовсе не использовать SSH. См SSH - протокол и мерзавец протокол .git://
путать сgit@github.com:user/project.git
, что SCP-иш синтаксис .Самый популярный ответ (Алексей Вишенцев) гласит:
Однако последнее утверждение неверно (сейчас или всегда так было, я не знаю).
Все, что вам нужно сделать, это перейти к настройке Cygwin и включить пакет «ca-сертификаты» (он находится в сети). Это помогло мне.
источник
CAfile: /etc/ssl/ca-bundle.crt
cygwin, тогда как пакет cygwin ca-сертификаты устанавливается/usr/ssl/certs/ca-bundle.crt
. Поэтому пришлось редактировать,~/.gitconfig
чтобы указать местоположение:[http]
затемsslCAinfo = /usr/ssl/certs/ca-bundle.crt
sudo ln -s /usr/ssl/certs/ca-bundle.crt /etc/ssl/
ca-certificates
.error: SSL certificate problem, verify that the CA cert is OK.
Я знаю оригинальные списки вопросов Cygwin, но вот решение для CentOS:
Источник: http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/
источник
yum update openssl
, что также обновляет ca-bundle.sha256sum /etc/pki/tls/certs/ca-bundle.crt
чтобы убедиться , что вы получили право файл.Чтобы клонировать Windows при настройке SSL, проверьте значение false:
Если вы хотите клонировать, не нарушая ваших глобальных настроек.
источник
На CentOS 5.x просто
yum update openssl
обновил пакет openssl, который обновил системныйca-bundle.crt
файл и исправил проблему для меня.То же самое может быть верно для других дистрибутивов.
источник
Если все, что вы хотите сделать, - это просто использовать git-клиент Cygwin с github.com, то есть гораздо более простой способ без необходимости загружать, извлекать, преобразовывать, разбивать файлы сертификатов. Действуйте следующим образом (я предполагаю, что Windows XP с Cygwin и Firefox)
Вот и все.
Конечно, это устанавливает только одну иерархию сертификатов, ту, которая вам нужна для github. Конечно, вы можете использовать этот метод с любым другим сайтом без необходимости устанавливать 200 сертификатов сайтов, которым вы (не обязательно) доверяете.
источник
Если вы используете Mac OS X, вы можете установить пакет ca-cert-bundle через
homebrew
:Формула устанавливает CERT узелок на свою долю через:
share
Метод является просто псевдонимом/usr/local/share
, а ротор-ч-расслоение обеспечиваютсяMozilla
. Это то, на что вы видите ссылки во многих вопросах. Надеюсь, что это поможет, поскольку не совсем понятно, как подойти к этому на Mac OS X.brew install curl
Вы тоже не получите много, потому что это только кег и не будут связаны (запускwhich curl
всегда будет выводиться/usr/bin/curl
, что по умолчанию поставляется с вашим ОПЕРАЦИОННЫЕ СИСТЕМЫ). Этот пост также может иметь определенную ценность .Вам, конечно, нужно отключить SSL перед установкой,
homebrew
так как это git-репо. Просто сделайте то, что говорит curl, когда он выдает ошибку во время проверки SSL и:Как только вы
homebrew
установите вместе сcurl-ca-bundle
, удалите.curlrc
и попробуйте клонировать репозиторий на github. Убедитесь, что ошибок нет, и вам будет хорошо.ПРИМЕЧАНИЕ. Если вы прибегаете к этому
.curlrc
, удалите его из системы, как только закончите тестирование. Этот файл может вызвать серьезные проблемы, поэтому используйте его во временных целях и с осторожностью.brew doctor
будет жаловаться, если вы забудете удалить его из вашей системы).ПРИМЕЧАНИЕ. Если вы обновите свою версию git, вам нужно будет повторно запустить эту команду, поскольку ваши системные настройки будут удалены (они сохраняются относительно двоичного файла git в зависимости от версии).
Итак, после запуска:
Если вы получили новую версию git, просто перезапустите:
И у тебя все будет готово.
Наконец, если у вас есть новая версия git, запустите:
должен дать вам ошибку в соответствии с
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....
команды. Спасибо и надеюсь, что это поможет.ОБНОВИТЬ
Похоже, что curl-ca-bundle был недавно удален из доморощенного . Здесь есть рекомендация .
Вы хотите добавить некоторые файлы в:
$(brew --prefix)/etc/openssl/certs
источник
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Вы можете попробовать эту команду в Терминале :
источник
Я исправил эту проблему, используя apt-cyg (отличный установщик, похожий на apt-get), чтобы легко загружать ca-сертификаты (включая Git и многие другие):
Примечание : apt-cyg должен быть сначала установлен. Вы можете сделать это из командной строки Windows:
Закройте Windows cmd и откройте Cygwin Bash:
источник
на разбой пи у меня было
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-запрос не выполнен
так что
тогда
работал
источник
Если вы использовали ОС на базе Debian, вы можете просто запустить
источник
У меня возникла та же проблема с Solaris Express 11. Это заняло у меня некоторое время, но мне удалось найти, где нужно разместить сертификаты. Согласно /etc/openssl/openssl.cnf, путь для сертификатов - / etc / openssl / certs. Я разместил сертификаты, сгенерированные по совету Алексея
Вы можете проверить, что все работает, используя openssl в командной строке:
источник
Попробуйте использовать файл .netrc, он будет аутентифицироваться через https. Создайте вызов файла
.netrc
в вашем домашнем каталоге и поместите в него:Смотрите этот пост для получения дополнительной информации:
https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj
источник
Улучшите решение RouMao, временно отключив проверку GIT / curl ssl в Windows cmd:
Преимущество этого решения в том, что оно действует только в текущем окне cmd.
источник
Вы проверили свое время?
Я абсолютно отказался сделать свои операции git небезопасными, и после того, как все люди, упомянутые здесь, попробовали, меня поразило, что одной из возможных причин, по которой сертификаты не проходят проверку, является неправильная дата (либо дата истечения срока действия сертификата, либо локальная часы).
Вы можете легко проверить это, набрав
date
в терминале. В моем случае (новый Raspberry Pi) локальные часы были установлены на 1970, поэтомуntpdate -u 0.ubuntu.pool.ntp.org
все просто исправили. Для rPi я бы также рекомендовал поместить следующий скрипт в ежедневную работу cron (скажем/etc/cron.daily/ntpdate
):источник
Сгенерируйте токен доступа из Github и сохраните его, так как он больше не появится.
или,
источник
Я столкнулся с той же проблемой при настройке Git на платформе совместной разработки, которой я должен управлять.
Чтобы решить это:
Я обновил версию Curl, установленную на сервере. Скачайте последнюю версию на сайте Скачайте страницу curl и следите за процедурой установки.
Верните сертификат органа, который доставляет сертификат для сервера.
Добавьте этот сертификат в файл CAcert, используемый curl. На моем сервере он находится в
/etc/pki/tls/certs/ca-bundle.crt
.Сконфигурируйте git для использования этого файла сертификата, отредактировав файл .gitconfig и установив путь sslcainfo.
sslcainfo= /etc/pki/tls/certs/ca-bundle.crt
На клиентском компьютере вы должны получить сертификат и настроить файл .gitconfig.
Я надеюсь, что это поможет некоторым из вас.
источник
Я попробовал все, в конце концов я посмотрел в файле hosts и там была случайная запись для github. Удаление псевдонима решило проблему
% SystemRoot% \ system32 \ Drivers \ Etc \ хостов
источник
Я просто отключил аутентификацию с помощью SSL-сертификата и использовал простой логин и пароль, как показано ниже
источник
Мне нужны были сертификаты только для Cygwin и git, поэтому я сделал то, что написал @esquifit. Однако мне пришлось выполнить шаг 5 вручную, c_rehash не был доступен в моей системе. Я следовал этому руководству: вместо этого устанавливал сертификаты CA в каркас OpenSSL .
источник
Мне нужно было две вещи:
перейдите к настройке cygwin и включите пакет ca-Certificates (он находится в сети) (как указано в другом месте).
Скажите git, где найти установленные сертификаты:
GIT_SSL_CAINFO = / usr / ssl / certs / ca-bundle.crt GIT_CURL_VERBOSE = 1 гит ...
(Подробный вариант не нужен)
Или сохранить опцию навсегда:
конфиг --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt
мерзавец ...
источник
Я была такая же проблема. Импорт сертификата или команда для отмены проверки SSL не работает. Оказалось, что срок действия пароля для сетевого прокси истек. Была запись о настройке прокси. в файле .gitconfig присутствует в моем профиле пользователя Windows. Я просто удалил всю запись, и она снова начала работать.
источник
В системе Mac OSX 10.5 я смог заставить это работать простым методом. Во-первых, запустите процедуры github и тест, который работал нормально для меня, показывая, что мой сертификат на самом деле был в порядке. https://help.github.com/articles/generating-ssh-keys
Тогда я наконец заметил еще один формат URL для удаленных. Я попробовал другие, выше, и они не работали. http://git-scm.com/book/ch2-5.html
Простой "git push myRemoteName" работал отлично!
источник
У меня недавно (июль 2014 г.) была похожая проблема, и я обнаружил в OS X (10.9.4), что срок действия сертификата «DigiCert High Assurance EV Root CA» истек (хотя у меня был и другой, срок действия которого еще не истек).
Я нашел два сертификата с именем «DigiCert High Assurance EV Root CA», один из которых истекает ноябрь 2031 года, а другой - в июле 2014 года (несколько дней назад). Удаление просроченного сертификата решило проблему для меня.
Надеюсь это поможет.
источник
Для тех, кто использует Msys / MinGW GIT, добавьте это
источник