martie 2, 2021

SSL lucrări cu browser-ul, Wget și Curl, dar nu reușește cu git

Am un site pe care îl folosesc pentru a găzdui Redmine și mai multe depozite de git

Acest lucru funcționează perfect pentru http, dar nu pot clona cu https, adică

git clone http://mysite.com/git/test.git

funcționează bine , dar

divid id = „A0A0FB0443″>

mi-e dor de lucrul ciudat pe care https pare să funcționeze pentru tot ce am încercat. Dacă deschid

https://mysite.com/git/test.git

într-un browser (testat pe Chrome și Firefox), nu primesc erori sau avertismente. De asemenea, pot

curl https://mysite.com/git/test.gitwget https://mysite.com/git/test.git

ambele lucrări fără plângeri sau avertismente.

Aici este rezultatul detaliat al git:

$ GIT_CURL_VERBOSE=1 git clone https://[email protected]/test/test.gitCloning into test...Password:* Couldn't find Host mysite.com in the .netrc file; using defaults* About to connect() to mysite.com port 443 (#0)* Trying 127.0.0.1... * Connected to mysite.com (127.0.0.1) port 443 (#0)* found 157 certificates in /etc/ssl/certs/ca-certificates.crt* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none* Closing connection #0* Couldn't find Host mysite.com in the .netrc file; using defaults* About to connect() to mysite.com port 443 (#0)* Trying 127.0.0.1... * Connected to mysite.com (127.0.0.1) port 443 (#0)* found 157 certificates in /etc/ssl/certs/ca-certificates.crt* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none* Closing connection #0error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none while accessing https://user\@mysite.com/test/test.git/info/refsfatal: HTTP request failed

Iată ieșirea detaliată a curl, cu informațiile personale modificate:

singura diferență pe care o pot Văzând că Git pare să folosească o cafenele explicite în timp ce curl folosește întregul director. Sunt nou la SSL (cel puțin pe partea administratorului), așa că nu sunt sigur ce înseamnă asta sau cum aș putea configura git pentru a lucra în același mod în care curl.

Folosesc git 1.7 .5.4 Apache 2.2.14 în Ubuntu 10.04. Am încercat clonarea de la 3 gazde Linux diferite (inclusiv un alt cont pe server), și nimic nu funcționează.

Am folosit și instrumentul openssl pentru a verifica certificatul meu pe server:

$openssl verify -purpose sslserver -CAfile chain.crt signed.pem signed.pem: OK

Aceasta poate fi legată de eroarea https://bugs.maemo.org/show_bug.cgi?id=495 dar se pare diferit pentru că nu primesc niciun avertisment sau eroare în niciun alt program.

Este de remarcat faptul că folosesc gitolite și redmine_git_hosting folosind http inteligent pentru a autentifica prin https. Cu toate acestea, nu cred că niciunul dintre acestea nu este vinovat, deoarece problema există chiar dacă lipsesc doar un depozit gol care funcționează altfel în / var / www și eu accesez direct. În plus, git peste ssh (cu și fără gitolite) funcționează.

Evitați-mă dacă aveți idee ce ați greșit sau dacă doriți mai multe informații. Chiar prefer SSL să funcționeze corect, în loc de legare a tuturor pentru a dezactiva verificarea certificatului în Git, deși aceasta este o soluție curentă.

Vă mulțumim că ați citit această publicație lungă!

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *