Utknąłem za zaporą, więc muszę użyć HTTPS, aby uzyskać dostęp do mojego repozytorium GitHub. Używam cygwin 1.7.7 na Windows XP.
Próbowałem ustawić pilota na https://[email protected]/username/ExcelANT.git
, ale wypychanie monituje o hasło, ale nic nie robi, gdy je wprowadzę.
https://username:<password>github.com/username/ExcelANT.git
i klonowanie pustego repozytorium od zera, ale za każdym razem daje mi ten sam błąd
błąd: problem z certyfikatem SSL, sprawdź, czy certyfikat CA jest OK. Szczegóły:
błąd: 14090086: Procedury SSL: SSL3_GET_SERVER_CERTIFICATE: weryfikacja certyfikatu nie powiodła się podczas uzyskiwania dostępu do https://github.com/username/ExcelANT.git/info/refs
Włączenie GIT_CURL_VERBOSE=1
daje mi
* Informacje o podłączeniu () do portu github.com 443 (# 0)
* Próbowanie 207.97.227.239 ... * Pomyślnie ustawiono lokalizacje weryfikacji certyfikatów:
* Plik CA: brak
CApath: / usr / ssl / certs
* Problem z certyfikatem SSL, sprawdź, czy certyfikat CA jest OK. Szczegóły:
błąd: 14090086: Procedury SSL: SSL3_GET_SERVER_CERTIFICATE: weryfikacja certyfikatu nie powiodła się
* Wygasła wyczyszczona
* Zamykanie połączenia # 0
* Informacje o połączeniu () z portem github.com 443 (# 0)
* Próbowanie 207.97.227.239 ... * Pomyślnie ustaw certyfikat sprawdź lokalizacje:
* CAfile: brak
CApath: / usr / ssl / certs
* Problem z certyfikatem SSL, sprawdź, czy certyfikat CA jest OK. Detale:
błąd: 14090086: Procedury SSL: SSL3_GET_SERVER_CERTIFICATE: weryfikacja certyfikatu nie powiodła się
* Wygasła wyczyszczona
*
Błąd zamknięcia połączenia nr 0 : problem z certyfikatem SSL, sprawdź, czy certyfikat CA jest OK. Szczegóły:
błąd: 14090086: Procedury SSL: SSL3_GET_SERVER_CERTIFICATE: weryfikacja certyfikatu nie powiodła się podczas uzyskiwania dostępu do https://github.com/username/ExcelANT.git/info/refs
fatal: HTTP request failed
Czy to problem z moją zaporą ogniową, cygwinem czy co?
Nie ustawiłem proxy HTTP w konfiguracji Git, jednak jest to serwer ISA, który wymaga uwierzytelnienia NTLM, a nie podstawowego, więc jeśli nikt nie wie, jak zmusić gita do korzystania z NTLM, jestem zdumiony.
Odpowiedzi:
Jeśli chcesz rozwiązać problem z certyfikatami, pomiń tę odpowiedź. Ta odpowiedź dotyczy tunelowania ssh przez zaporę ogniową, która jest lepszym rozwiązaniem IMHO do obsługi zapory ogniowej / serwera proxy.
Jest lepszy sposób niż korzystanie z dostępu HTTP, a mianowicie skorzystanie z usługi ssh oferowanej przez github na porcie 443 serwera ssh.github.com.
Używamy narzędzia zwanego korkociągiem. Jest to dostępne zarówno dla CygWin (poprzez konfigurację ze strony domowej cygwin), jak i Linuksa przy użyciu twojego ulubionego narzędzia do pakowania. W systemie MacOSX jest on dostępny w Macports i co najmniej warzeniu.
Wiersz polecenia wygląda następująco:
Serwer proxy i port proxy są współrzędnymi serwera proxy https. Targhost i targetport to lokalizacja hosta do tunelu. Authfile to plik tekstowy z 1 wierszem zawierający nazwę użytkownika / hasło do serwera proxy oddzielone dwukropkiem
na przykład:
Instalacja do używania „normalnego” protokołu ssh do komunikacji git
Dodając to do
~/.ssh/config
tej sztuczki, można jej użyć do normalnych połączeń ssh.teraz możesz przetestować, czy działa ssh-sing do gitproxy
(Uwaga: jeśli nigdy wcześniej nie logowałeś się do github, ssh poprosi o dodanie klucza serwera do znanego pliku hosts. Jeśli jesteś paranoikiem, zaleca się zweryfikowanie odcisku palca RSA do tego pokazanego na stronie github, na której przesłałeś swój klucz).
Niewielki wariant tej metody ma miejsce, gdy trzeba uzyskać dostęp do repozytorium za pomocą innego klucza, np. W celu oddzielenia konta prywatnego od konta profesjonalnego.
cieszyć się!
Używamy tego od lat zarówno w systemie Linux, Mac, jak i Windows.
Jeśli chcesz, możesz przeczytać więcej na ten temat w tym poście na blogu
źródło
Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa
i klonowanie za pomocą git clone[email protected]:oharab/log4vba.git
sprawiło, że uruchomiło się ono w mgnieniu oka .Problem polega na tym, że nie masz żadnych certyfikatów urzędu certyfikacji zainstalowanych w systemie. A tych certyfikatów nie można zainstalować za pomocą pliku setup.exe cygwin.
Aktualizacja: Zainstaluj pakiet Net / ca-certyfikaty w cygwin (dzięki dirkjot)
Istnieją dwa rozwiązania:
Właściwie zainstaluj certyfikaty główne. Zwijają się faceci wyodrębnili dla ciebie certyfikaty z Mozilli .
cacert.pem
plik jest tym, czego szukasz. Ten plik zawiera> 250 certyfikatów CA (nie wiem jak ufać tej liczbie ppl). Musisz pobrać ten plik, podzielić go na poszczególne certyfikaty, umieścić je w katalogu / usr / ssl / certs (twoja ścieżka CA) i zindeksować je.Oto jak to zrobić. Z cygwin setup.exe zainstaluj curl i pakiety openssl wykonaj:
Ważne : Aby z niego korzystać
c_rehash
, musisz również zainstalowaćopenssl-perl
.Zignoruj weryfikację certyfikatu SSL.
OSTRZEŻENIE: Wyłączenie weryfikacji certyfikatu SSL ma wpływ na bezpieczeństwo. Bez weryfikacji autentyczności połączeń SSL / HTTPS złośliwy atakujący może podszyć się pod zaufany punkt końcowy (taki jak GitHub lub inny zdalny host Git), a Ty będziesz narażony na atak typu Man-in-the-Middle . Upewnij się, że w pełni rozumiesz problemy bezpieczeństwa i model zagrożenia, zanim użyjesz tego jako rozwiązania.
źródło
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?
Może zadziała po ponownym uruchomieniu?ca-certificates
pakiet cygwin , aby uzyskać brakujące certyfikaty root. Dlaczego ta odpowiedź ma tak wiele zalet?Uwaga: wyłączenie weryfikacji SSL ma wpływ na bezpieczeństwo . Pozwala na ataki Man in the Middle, gdy używasz Git do przesyłania danych przez sieć. Upewnij się, że w pełni rozumiesz wpływ na bezpieczeństwo, zanim użyjesz tego jako rozwiązania. Lub jeszcze lepiej, zainstaluj certyfikaty główne.
Jednym ze sposobów jest wyłączenie weryfikacji SSL CERT:
Zapobiegnie to sprawdzeniu przez CURL certyfikatu HTTPS.
Tylko dla jednego repozytorium:
źródło
Chciałem, aby Git używał zaktualizowanego pakietu certyfikatów bez zastępowania tego, z którego korzysta cały mój system. Oto, jak Git może użyć określonego pliku w moim katalogu domowym:
Teraz zaktualizuj,
.gitconfig
aby użyć tego do weryfikacji wzajemnej:Uwaga: Używam ścieżki bezwzględnej. Git nie rozwija tutaj ścieżki, więc nie możesz używać
~
bez brzydkiej kludge. Alternatywnie możesz pominąć plik konfiguracyjny iGIT_SSL_CAINFO
zamiast tego ustawić ścieżkę za pomocą zmiennej środowiskowej .Aby rozwiązać ten problem, ustaw
GIT_CURL_VERBOSE=1
. Ścieżka pliku CA, którego używa Git, zostanie pokazana w wierszach rozpoczynających się od „CAfile:” w danych wyjściowych.źródło
/etc/ssl/certs/ca-certificates.crt
na moim Ubuntu 8.04 LTS tym plikiem i zadziałało to magicznie!git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
Zauważ, że aby uruchomić tę funkcję (instalacja RVM na CentOS 5.6), musiałem uruchomić następujące czynności:
export GIT_SSL_NO_VERIFY=true
a potem standardowa procedura instalacji dla zawinięcia instalatora RVM w bash zadziałała :)
źródło
Bardzo proste rozwiązanie: zamień https: // na git: //
Użyj git: //the.repository zamiast https: //the.repository i będzie działać.
Miałem ten problem z Windows z TortoiseGit i to rozwiązało.
źródło
git://
. Jak stwierdzono w powyższej odpowiedzi , wyłączenie weryfikacji ssl stanowi zagrożenie bezpieczeństwa.git://
Protokół używa SSH, który korzysta ssh publicznego i prywatnego pary klucz do uwierzytelniania i szyfrowania, zamiast certyfikatu SSL.git://
ma nie korzystać z SSH. Zobacz protokół SSH i protokół Git .git://
mylić z[email protected]:user/project.git
, który jest składnia SCP-owski .Jako najbardziej popularna odpowiedź (autor Aleksiej Vishentsev) ma:
Jednak to ostatnie twierdzenie jest fałszywe (teraz albo zawsze było, nie wiem).
Wszystko, co musisz zrobić, to przejść do konfiguracji cygwin i dołączyć pakiet „ca-certyfikaty” (jest pod Net). To załatwiło sprawę.
źródło
CAfile: /etc/ssl/ca-bundle.crt
podczas instalowania pakietu cagwin ca-certyfikaty/usr/ssl/certs/ca-bundle.crt
. Dlatego musiał edytować,~/.gitconfig
aby określić lokalizację:[http]
następniesslCAinfo = /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.
Znam oryginalne listy pytań Cygwin, ale oto rozwiązanie dla CentOS:
Źródło: http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/
źródło
yum update openssl
, co również aktualizuje pakiet ca.sha256sum /etc/pki/tls/certs/ca-bundle.crt
aby upewnić się, że masz właściwy wynik plik.Aby sklonować w systemie Windows przy ustawieniu SSL weryfikuj na false:
Jeśli chcesz sklonować bez zmiany ustawień globalnych.
źródło
W CentOS 5.x prosta
yum update openssl
aktualizacja pakietu openssl, który zaktualizował systemca-bundle.crt
plik i naprawił dla mnie problem.To samo może dotyczyć innych dystrybucji.
źródło
Jeśli wszystko, co chcesz zrobić, to po prostu użyć klienta git Cygwin z github.com, istnieje znacznie prostszy sposób bez konieczności przechodzenia przez pobieranie, rozpakowywanie, konwertowanie, dzielenie plików cert. Postępuj w następujący sposób (zakładam, że Windows XP z Cygwin i Firefox)
Otóż to.
Oczywiście instaluje to tylko jedną hierarchię certyfikatów, potrzebną dla github. Możesz oczywiście użyć tej metody z dowolną inną witryną bez konieczności instalowania 200 certyfikatów witryn, którym (niekoniecznie) ufasz.
źródło
Jeśli korzystasz z systemu Mac OS X, możesz zainstalować pakiet ca-cert za pośrednictwem
homebrew
:Formuła instaluje cert pakiet do swojego udziału poprzez:
share
Sposób jest tylko alias/usr/local/share
i zwijanie-CA-pakiet dostarczaMozilla
. To, co widzisz, odnosi się do wielu problemów. Mam nadzieję, że to pomaga, ponieważ nie jest to bardzo proste, jak podejść do tego w Mac OS X.brew install curl
nie przyniesie ci wiele, ponieważ jest to tylko beczka i nie zostanie połączona (uruchamianiewhich curl
zawsze będzie generować/usr/bin/curl
, co jest domyślną opcją dostarczaną z twoim OS). Ten post może mieć również pewną wartość .Oczywiście musisz wyłączyć SSL przed instalacją,
homebrew
ponieważ jest to repozytorium git. Po prostu zrób to, co mówi curl, gdy wystąpi błąd podczas weryfikacji SSL i:Po
homebrew
zainstalowaniu wraz zcurl-ca-bundle
, usuń.curlrc
i spróbuj sklonować repo na github. Upewnij się, że nie ma błędów, a będziesz gotowy.UWAGA: Jeśli skorzystasz z tej opcji
.curlrc
, usuń ją z systemu natychmiast po zakończeniu testowania. Ten plik może powodować poważne problemy, więc używaj go do celów tymczasowych i ostrożnie.brew doctor
narzeka, jeśli zapomnisz usunąć go z systemu).UWAGA: Jeśli zaktualizujesz swoją wersję git, będziesz musiał ponownie uruchomić to polecenie, ponieważ ustawienia systemu zostaną usunięte (są przechowywane względem pliku binarnego git w zależności od wersji).
Po uruchomieniu:
Jeśli otrzymasz nową wersję git, po prostu uruchom ponownie:
I wszystko będzie gotowe.
Wreszcie, jeśli masz nową wersję git, działającą:
powinien dać ci błąd wzdłuż linii
fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'
to twoja wskazówka, którą musisz powiedzieć gitowi, gdzie jest pakiet ca Mozilli.
AKTUALIZACJA:
.curlrc
może, ale nie musi, być rozwiązaniem problemu. W każdym razie po prostu zainstaluj pakiet Ca Mozilli na swoim komputerze, niezależnie od tego, czy musisz go ręcznie pobrać, czy nie. To jest ważne tutaj. Po otrzymaniu pakietu ca możesz zacząć. Po prostu uruchom komendę git config i wskaż git na pakiet ca.AKTUALIZACJA
Niedawno musiałem dodać:
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
do mojego.zshenv
pliku kropek, ponieważ używamzsh
.git config
opcja pracował dla większości przypadków, ale po uderzeniu GitHub over SSL (rvm get stable
na przykład), nadal prowadził w kwestii certyfikatów. @Maverick zwrócił na to uwagę w swoim komentarzu, ale na wypadek, gdyby ktoś spudłował lub zakładał, że niekoniecznie musi eksportować tę zmienną środowiskową oprócz uruchomieniagit config --system....
polecenia. Dzięki i mam nadzieję, że to pomoże.AKTUALIZACJA
Wygląda na to, że pakiet curl-ca został niedawno usunięty z homebrew . Tutaj jest zalecenie .
Będziesz chciał upuścić niektóre pliki do:
$(brew --prefix)/etc/openssl/certs
źródło
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Możesz wypróbować to polecenie w terminalu :
źródło
Rozwiązałem ten problem za pomocą apt-cyg (świetnego instalatora podobnego do apt-get), aby łatwo pobrać certyfikaty ca (w tym Git i wiele innych):
Uwaga : najpierw należy zainstalować apt-cyg. Możesz to zrobić z wiersza poleceń systemu Windows:
Zamknij Windows cmd i otwórz Cygwin Bash:
źródło
na pijackim pi miałem
pi @ raspbmc: ~ $ git clone http: //github.com/andreafabrizi/Dropbox-Uploader .git Klonowanie w 'Dropbox-Uploader' ... błąd: problem z certyfikatem SSL CA (ścieżka? prawa dostępu?) podczas uzyskiwania dostępu http: // github.com/andreafabrizi/Dropbox-Uploader.git/info/refs fatal: Żądanie HTTP nie powiodło się
więc id
następnie
pracował
źródło
Jeśli korzystałeś z systemu operacyjnego opartego na Debianie, możesz po prostu uruchomić
źródło
Miałem ten sam problem z Solaris Express 11. Trochę to zajęło, ale udało mi się znaleźć, gdzie należy umieścić certyfikaty. Według /etc/openssl/openssl.cnf ścieżka do certyfikatów to / etc / openssl / certs. Umieściłem wygenerowane certyfikaty, korzystając z powyższej porady od Aleksieja.
Możesz sprawdzić, czy wszystko działa, używając openssl w wierszu poleceń:
źródło
Spróbuj użyć pliku .netrc, zostanie on uwierzytelniony przez https. Utwórz wywołanie pliku
.netrc
w swoim katalogu domowym i umieść w nim:Zobacz ten post, aby uzyskać więcej informacji:
https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj
źródło
Ulepsz rozwiązanie RouMao, tymczasowo wyłączając weryfikację GIT / curl ssl w cmd Windows:
Zaletą tego rozwiązania jest to, że działa ono tylko w bieżącym oknie cmd.
źródło
Sprawdziłeś swój czas?
Absolutnie odmówiłem uczynienia operacji git niepewnymi i po wypróbowaniu wszystkiego, co tu wspomniano, uderzyło mnie, że jedną z możliwych przyczyn nieudanej weryfikacji certyfikatów jest to, że daty są nieprawidłowe (data wygaśnięcia certyfikatu lub lokalna zegar ).
Możesz to łatwo sprawdzić, wpisując
date
terminal. W moim przypadku (nowy malinowy Pi), lokalny zegar został ustawiony na 1970, więc prostyntpdate -u 0.ubuntu.pool.ntp.org
naprawił wszystko. W przypadku rPi polecam również umieszczenie następującego skryptu w codziennej pracy crona (powiedzmy/etc/cron.daily/ntpdate
):źródło
Wygeneruj token dostępu z Github i zapisz go, ponieważ nie pojawi się ponownie.
lub,
źródło
Ten sam problem napotkałem podczas konfigurowania Gita na platformie do wspólnego programowania, którą muszę zarządzać.
Aby to rozwiązać:
Zaktualizowałem wersję Curl zainstalowaną na serwerze. Pobierz ostatnią wersję na stronie Pobierz stronę curl i postępuj zgodnie z instrukcjami instalacji. Postępowanie instalacji curl
Odzyskaj certyfikat organu, który dostarcza certyfikat dla serwera.
Dodaj ten certyfikat do pliku CAcert używanego przez curl. Na moim serwerze znajduje się w
/etc/pki/tls/certs/ca-bundle.crt
.Skonfiguruj git, aby używał tego pliku certyfikatu, edytując plik .gitconfig i ustaw ścieżkę sslcainfo.
sslcainfo= /etc/pki/tls/certs/ca-bundle.crt
Na komputerze klienckim musisz uzyskać certyfikat i skonfigurować również plik .gitconfig.
Mam nadzieję, że to pomoże niektórym z was.
źródło
Próbowałem wszystkiego, w końcu zajrzałem do pliku hosts i był tam losowy wpis dla github. Usunięcie aliasu naprawiło problem
% systemroot% \ system32 \ drivers \ etc \ hosts
źródło
Po prostu wyłączyłem uwierzytelnianie certyfikatu SSL i użyłem prostego loginu do hasła użytkownika, jak pokazano poniżej
źródło
Potrzebowałem certyfikatów tylko dla Cygwin i git, więc zrobiłem to, co opublikował @esquifit. Jednak musiałem uruchomić krok 5 ręcznie, c_rehash nie był dostępny w moim systemie. Postępowałem zgodnie z tym przewodnikiem: Zamiast tego instalowałem certyfikaty CA w frameworku OpenSSL .
źródło
Potrzebowałem dwóch rzeczy:
przejdź do konfiguracji cygwin i dołącz pakiet „ ca-certyfikaty ” (jest w sieci) (jak wskazano w innym miejscu).
Powiedz gitowi, gdzie znaleźć zainstalowane certyfikaty:
GIT_SSL_CAINFO = / usr / ssl / certs / ca- bundle.crt GIT_CURL_VERBOSE = 1 git ...
(Opcja Verbose nie jest potrzebna)
Lub przechowywanie opcji na stałe:
git config --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt
git ...
źródło
Miałem ten sam problem. Importowanie certyfikatu lub polecenie cofnięcia weryfikacji ssl nie działało. Okazało się, że wygasło hasło do sieciowego serwera proxy. Nastąpił wpis konfiguracji proxy. w pliku .gitconfig obecnym w moim profilu użytkownika Windows. Właśnie usunąłem cały wpis i znów zaczął działać.
źródło
W systemie Mac OSX 10.5 udało mi się to uruchomić za pomocą prostej metody. Najpierw uruchom procedury github i test, który działał dla mnie dobrze, pokazując, że mój certyfikat był w porządku. https://help.github.com/articles/generating-ssh-keys
W końcu zauważyłem kolejny format adresu URL dla pilotów. Próbowałem innych powyżej i one nie działały. http://git-scm.com/book/ch2-5.html
Prosty „git push myRemoteName” działał świetnie!
źródło
Niedawno (lipiec 2014 r.) Miałem podobny problem i stwierdziłem w systemie OS X (10.9.4), że wygasł certyfikat „DigiCert High Assurance EV Root CA” (chociaż miałem również inny, który wygasł).
Znalazłem dwa certyfikaty o nazwie „DigiCert High Assurance EV Root CA”, jeden wygasający w listopadzie 2031 r., A wygasł w lipcu 2014 r. (Kilka dni wcześniej). Usunięcie wygasłego certyfikatu rozwiązało problem.
Mam nadzieję że to pomoże.
źródło
Dla tych, którzy używają Msys / MinGW GIT, dodaj to
źródło