Março 2, 2021

ssl funciona com o navegador, wget e enrolar, mas falha com o git

Eu tenho um site que estou usando para hospedar Redmine e vários repositórios Git

Isso funciona perfeitamente para http, mas eu não posso clonar com https, isto é.

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

funciona bem , mas

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

falha

Eu sinto falta da coisa estranha que Https parece funcionar para todo o resto que tentei. Se eu abrir

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

em um navegador (testado no Chrome e Firefox), não recebo erros ou avisos. Eu também posso

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

ambos trabalhos sem reclamações ou avisos.

Aqui está a saída detalhada do 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

Aqui está a saída de onda detalhada, com as informações pessoais modificadas:

A única diferença que posso Vendo é que o Git parece estar usando um cafile explícito enquanto a Curl usa o diretório inteiro. Eu sou novo em SSL (pelo menos no lado do administrador), então não tenho certeza do que isso significa ou como eu poderia configurar o Git para trabalhar da mesma maneira que enrolar.

Eu estou usando git 1.7 .5,4 e Apache 2.2.14 no Ubuntu 10.04. Eu tentei clonagem de 3 hosts linux diferentes (incluindo outra conta no servidor), e nada funciona.

Eu também usei a ferramenta OpenSSL para verificar meu certificado no servidor:

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

Isso pode estar relacionado ao erro https://bugs.maemo.org/show_bug.cgi?id=495 Mas parece diferente porque não recebo nenhum aviso ou erro em qualquer outro programa.

Vale ressaltar que estou usando gitolite e redmine_git_hosting usando http inteligente para autenticar através de HTTPS. No entanto, eu não acho que nada disso é culpado, porque o problema existe mesmo se eu apenas coloco um repositório nu que funciona de outra forma em / var / www e eu acessá-lo diretamente. Além disso, Git sobre o SSH (com e sem Gitolite) funciona.

Evite-me se você tiver alguma idéia do que você pode estar errado ou se você quiser mais informações. Eu realmente prefiro SSL para funcionar corretamente, em vez de vincular todos a desativar o cheque de certificado no Git, embora essa seja uma solução atual.

Obrigado por ler esta publicação longa!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *