Estou preso atrás de um firewall, então tenho que usar HTTPS para acessar meu repositório GitHub. Estou usando o cygwin 1.7.7 no Windows XP.
Tentei configurar o controle remoto para https://[email protected]/username/ExcelANT.git
, mas pressionando solicita uma senha, mas não faz nada depois de inseri-la.
https://username:<password>github.com/username/ExcelANT.git
e clonar o repositório vazio a partir do zero, mas cada vez que ele me dá o mesmo erro
erro: problema com o certificado SSL, verifique se o certificado da CA está OK. Detalhes:
erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: falha na verificação do certificado ao acessar https://github.com/username/ExcelANT.git/info/refs
Ligar GIT_CURL_VERBOSE=1
me dá
* Sobre a conexão () à porta 443 do github.com (# 0)
* Tentativa de 207.97.227.239 ... * definir certificados com êxito para verificar locais:
* CAfile: none
CApath: / usr / ssl / certs
* Problema no certificado SSL, verifique se o certificado da CA está OK. Detalhes:
erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: falha na verificação do certificado
* Expiração desmarcada
* Fechando a conexão # 0
* Sobre a conexão () à porta 443 do github.com (# 0)
* Tentando 207.97.227.239 ... * definir o certificado com êxito verifique os locais:
* CAfile: none
CApath: / usr / ssl / certs
* Problema no certificado SSL, verifique se o certificado da CA está OK. Detalhes:
erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: falha na verificação do certificado
* Expiração limpa
* Fechando a conexão # 0
erro: erro no certificado SSL: verifique se o certificado da CA está OK. Detalhes:
erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: falha na verificação do certificado ao acessar https://github.com/username/ExcelANT.git/info/refs
fatal: HTTP request failed
Isso é um problema com meu firewall, cygwin ou o quê?
Eu não havia definido o proxy HTTP na configuração do Git, no entanto, é um servidor ISA que precisa de autenticação NTLM, e não básico, portanto, a menos que alguém saiba como forçar o git a usar o NTLM, sou prejudicado.
Respostas:
Sinta-se à vontade para ignorar esta resposta se desejar corrigir o problema de certificados. Esta resposta lida com o tunelamento ssh através do firewall, que é uma solução melhor para lidar com coisas de firewall / proxy.
Existe uma maneira melhor do que usar o acesso http e usar o serviço ssh oferecido pelo github na porta 443 do servidor ssh.github.com.
Usamos uma ferramenta chamada saca-rolhas. Está disponível para o CygWin (através da configuração da página inicial do cygwin) e para o Linux usando sua ferramenta de empacotamento favorita. Para o MacOSX, está disponível em macports e brew pelo menos.
A linha de comando é a seguinte:
O proxyhost e o proxyport são as coordenadas do proxy https. O targethost e o targetport são o local do host para o qual fazer o túnel. O authfile é um arquivo de texto com 1 linha contendo o nome de usuário / senha do servidor proxy separados por dois pontos
por exemplo:
Instalação para usar o protocolo ssh "normal" para comunicação git
Ao adicionar isso ao,
~/.ssh/config
esse truque pode ser usado para conexões ssh normais.agora você pode testar se funciona ssh-ing para gitproxy
(Nota: se você nunca fez login no github antes, o ssh solicitará a adição da chave do servidor ao arquivo conhecido dos hosts. Se você é paranóico, recomenda-se verificar a impressão digital RSA àquela mostrada no site do github onde você carregou sua chave).
Uma pequena variação desse método ocorre quando você precisa acessar um repositório com outra chave, por exemplo, para separar sua conta privada da sua conta profissional.
desfrutar!
Estamos usando isso há anos no Linux, Macs e Windows.
Se você quiser, pode ler mais sobre isso neste post do blog
fonte
Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa
e clonar usando git clone o[email protected]:oharab/log4vba.git
colocou em funcionamento rapidamente.O problema é que você não possui nenhum certificado da Autoridade de Certificação instalado no seu sistema. E esses certificados não podem ser instalados com o setup.exe do cygwin.
Atualização: Instale o pacote Net / ca-certificates no cygwin (obrigado dirkjot)
Existem duas soluções:
Instale realmente os certificados raiz. Caras curl extraídos para você certificados da Mozilla .
cacert.pem
arquivo é o que você está procurando. Este arquivo contém> 250 certificados de autoridade de certificação (não sabe como confiar nesse número de pessoas). Você precisa baixar esse arquivo, dividi-lo em certificados individuais, colocá-los em / usr / ssl / certs (seu CApath) e indexá-los.Aqui está como fazê-lo. Com o cygwin setup.exe, instale os pacotes curl e openssl:
Importante : Para usar,
c_rehash
você deve instalaropenssl-perl
também.Ignore a verificação do certificado SSL.
AVISO: Desativar a verificação do certificado SSL tem implicações de segurança. Sem verificar a autenticidade das conexões SSL / HTTPS, um invasor mal-intencionado pode se passar por um terminal confiável (como o GitHub ou algum outro host remoto do Git), e você estará vulnerável a um ataque do tipo intermediário . Certifique-se de entender completamente os problemas de segurança e seu modelo de ameaça antes de usá-lo como uma solução.
fonte
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?
Talvez funcione após a reinicialização?ca-certificates
pacote cygwin para obter os certificados raiz ausentes. Por que essa resposta teve tantos altos?Nota: desativar a verificação SSL tem implicações de segurança . Ele permite ataques Man in the Middle quando você usa o Git para transferir dados através de uma rede. Certifique-se de entender completamente as implicações de segurança antes de usar isso como uma solução. Ou melhor ainda, instale os certificados raiz.
Uma maneira é desativar a verificação SSL CERT:
Isso impedirá que o CURL verifique a certificação HTTPS.
Apenas para um repositório:
fonte
Eu queria que o Git usasse o pacote de certificados atualizado sem substituir o que todo o meu sistema usa. Veja como o Git usa um arquivo específico no meu diretório pessoal:
Agora atualize
.gitconfig
para usar isso para verificação por pares:Note que estou usando um caminho absoluto. O Git não faz expansão de caminho aqui, então você não pode usá-lo
~
sem um feio feio. Como alternativa, você pode pular o arquivo de configuração e definir o caminho através da variável de ambienteGIT_SSL_CAINFO
.Para solucionar isso, defina
GIT_CURL_VERBOSE=1
. O caminho do arquivo CA que o Git está usando será mostrado nas linhas que começam com "CAfile:" na saída.fonte
/etc/ssl/certs/ca-certificates.crt
no meu Ubuntu 8.04 LTS por esse arquivo e ele funcionou magicamente!git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
Observe que, para que eu funcione (instalação do RVM no CentOS 5.6), tive que executar o seguinte:
export GIT_SSL_NO_VERIFY=true
e depois disso, o procedimento de instalação padrão para enrolar o instalador do RVM no bash funcionou bem :)
fonte
Uma solução muito simples: substitua https: // por git: //
Use git: //the.repository em vez de https: //the.repository e funcionará.
Eu tive esse problema no Windows com o TortoiseGit e isso resolveu.
fonte
git://
. Conforme declarado nesta resposta acima , desabilitar a verificação SSL é um risco de segurança.git://
protocolo usa SSH, que usa pares de chaves públicas e privadas SSH para autenticação e criptografia, em vez de um certificado SSL.git://
se não usar SSH. Veja O Protocolo SSH e O Protocolo Git .git://
confuso[email protected]:user/project.git
, que é a sintaxe SCP-ish .Como a resposta mais popular (de Alexey Vishentsev) tem:
No entanto, essa última afirmação é falsa (agora, ou sempre foi, eu não sei).
Tudo o que você precisa fazer é ir para a configuração do cygwin e incluir o pacote 'ca-certificates' (está em Net). Isso fez o truque para mim.
fonte
CAfile: /etc/ssl/ca-bundle.crt
que o pacote cygwin ca-certificates é instalado/usr/ssl/certs/ca-bundle.crt
. Portanto, teve que editar~/.gitconfig
para especificar a localização:[http]
em seguidasslCAinfo = /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.
Eu sei que a pergunta original lista o Cygwin, mas aqui está a solução para o CentOS:
Fonte: http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/
fonte
yum update openssl
, o que também atualiza o pacote CA.sha256sum /etc/pki/tls/certs/ca-bundle.crt
para garantir que você esteja certo Arquivo.Para clonar no Windows enquanto configura o SSL, verifique como false:
Se você deseja clonar sem alterar suas configurações globais.
fonte
No CentOS 5.x, um simples
yum update openssl
pacote atualizado openssl atualizou oca-bundle.crt
arquivo do sistema e corrigiu o problema para mim.O mesmo pode ser verdade para outras distribuições.
fonte
Se tudo o que você deseja é apenas usar o cliente git Cygwin no github.com, existe uma maneira muito mais simples, sem ter que passar pelo trabalho de baixar, extrair, converter e dividir arquivos cert. Prossiga da seguinte maneira (estou assumindo o Windows XP com Cygwin e Firefox)
É isso aí.
Obviamente, isso instala apenas uma hierarquia de certificados, a que você precisa para o github. Obviamente, você pode usar esse método com qualquer outro site sem a necessidade de instalar 200 certs de sites nos quais não confia (necessariamente).
fonte
Se você estiver no Mac OS X, poderá instalar o pacote ca-cert-via
homebrew
:A fórmula instala o pacote de certificados no seu compartilhamento via:
O
share
método é apenas um alias para/usr/local/share
, e o pacote curl-ca- é fornecido porMozilla
. É o que você vê sendo referenciado em muitos problemas. Espero que isso ajude, pois não é muito claro como abordar isso no Mac OS X. Isso não o ajudarábrew install curl
muito, pois é apenas barril e não será vinculado (a execuçãowhich curl
sempre será gerada/usr/bin/curl
, o padrão que é fornecido com o seu computador). OS). Esta postagem também pode ter algum valor .Obviamente, você precisará desativar o SSL antes de instalar,
homebrew
pois é um repositório git. Basta fazer o que o curl diz quando ocorrer um erro durante a verificação SSL e:Depois de
homebrew
instalar junto com ocurl-ca-bundle
, exclua.curlrc
e tente clonar um repositório no github. Certifique-se de que não haja erros e você estará pronto.NOTA: Se você recorrer
.curlrc
, remova-o do seu sistema no momento em que terminar de testar. Esse arquivo pode causar problemas importantes, portanto, use-o para propósitos temporários e com cuidado.brew doctor
reclamará caso você esqueça de removê-lo do seu sistema).NOTA: Se você atualizar sua versão do git, precisará executar novamente este comando, pois as configurações do sistema serão apagadas (elas são armazenadas em relação ao binário do git com base na versão).
Então, depois de executar:
Se você receber uma nova versão do git, basta executar novamente:
E você estará pronto.
Por fim, se você possui uma nova versão do git, execute:
deve dar um erro ao longo das linhas de
fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'
essa é a sua dica que você precisa dizer ao git onde está o pacote CA da Mozilla.
ATUALIZAR:
.curlrc
pode ou não ser o remédio para o seu problema. De qualquer forma, basta instalar o pacote CA Mozilla na sua máquina, independentemente de você precisar fazer o download manualmente ou não. Isso é importante aqui. Depois de obter o pacote CA, você estará pronto. Basta executar o comando git config e apontar git para o pacote CA.ATUALIZAR
Recentemente, tive que adicionar:
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
para o meu.zshenv
arquivo de ponto desde que eu estou usandozsh
. agit config
opção funcionou na maioria dos casos, mas ao acessar o github sobre SSL (rvm get stable
por exemplo), eu ainda estava com problemas de certificado. O @Maverick apontou isso em seu comentário, mas caso alguém perca ou assuma que não precisa necessariamente exportar essa variável de ambiente, além de executar ogit config --system....
comando. Obrigado e espero que isso ajude.ATUALIZAR
Parece que o pacote curl-ca- foi removido recentemente do homebrew . Há uma recomendação aqui .
Você deseja soltar alguns arquivos em:
$(brew --prefix)/etc/openssl/certs
fonte
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Você pode tentar este comando no terminal :
fonte
Corrigi esse problema usando o apt-cyg (um ótimo instalador semelhante ao apt-get) para baixar facilmente os certificados ca (incluindo o Git e muitos mais):
Nota : o apt-cyg deve ser instalado primeiro. Você pode fazer isso na linha de comando do Windows:
Feche o cmd do Windows e abra o Cygwin Bash:
fonte
em um pi rasbery eu tive
pi @ raspbmc: ~ $ git clone http: //github.com/andreafabrizi/Dropbox-Uploader .git Clonagem no 'Dropbox-Uploader' ... erro: Problema com o certificado CA da SSL (caminho? direitos de acesso?) ao acessar http: // github.com/andreafabrizi/Dropbox-Uploader.git/info/refs fatal: a solicitação HTTP falhou
então id um
então
trabalhou
fonte
Se você usou o SO baseado em debian, pode simplesmente executar
fonte
Estou enfrentando esse mesmo problema no Solaris Express 11. Demorei um pouco, mas consegui descobrir onde os certificados precisavam ser colocados. De acordo com /etc/openssl/openssl.cnf, o caminho para os certificados é / etc / openssl / certs. Coloquei os certificados gerados usando o conselho acima de Alexey.
Você pode verificar se as coisas estão funcionando usando o openssl na linha de comando:
fonte
Tente usar um arquivo .netrc, ele será autenticado por https. Crie uma chamada de arquivo
.netrc
no seu diretório pessoal e coloque-o:Veja este post para mais informações:
https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj
fonte
Melhore a solução do RouMao desativando temporariamente a verificação GIT / curl ssl no cmd do Windows:
O bom dessa solução é que ela só entra em vigor na janela atual do cmd.
fonte
Você verificou seu tempo?
Recusei-me absolutamente a tornar minhas operações git inseguras e depois de tentar tudo o que as pessoas mencionaram aqui, me ocorreu que uma possível causa pela qual os certificados não passam na verificação é que as datas estão incorretas (a data de validade do certificado ou o local relógio ).
Você pode verificar isso facilmente digitando
date
um terminal. No meu caso (um novo raspberry Pi), o relógio local foi ajustado para 1970, então um simplesntpdate -u 0.ubuntu.pool.ntp.org
consertou tudo. Para uma rPi, também recomendo que você coloque o seguinte script em um trabalho cron diário (digamos/etc/cron.daily/ntpdate
):fonte
Gere o token de acesso do Github e salve-o, pois ele não aparecerá novamente.
ou,
fonte
Encontrei o mesmo problema para configurar o Git em uma plataforma de desenvolvimento colaborativo que tenho que gerenciar.
Para resolvê-lo:
Atualizei a versão do Curl instalada no servidor. Baixe a última versão no site Baixe a página do curl e siga os procedimentos de instalação Procedimentos de instalação do curl
Volte o certificado da autoridade que entrega o certificado para o servidor.
Adicione este certificado ao arquivo CAcert usado pelo curl. No meu servidor está localizado em
/etc/pki/tls/certs/ca-bundle.crt
.Configure o git para usar este arquivo de certificado editando o arquivo .gitconfig e defina o caminho sslcainfo.
sslcainfo= /etc/pki/tls/certs/ca-bundle.crt
Na máquina cliente, você deve obter o certificado e configurar o arquivo .gitconfig também.
Espero que isso ajude alguns de vocês.
fonte
Eu tentei de tudo, eventualmente procurei no arquivo hosts e havia uma entrada aleatória no github. A remoção do alias corrigiu o problema
% systemroot% \ system32 \ drivers \ etc \ hosts
fonte
Simplesmente desabilitei a autenticação do certificado SSL e usei o login de senha de nome de usuário simples, como mostrado abaixo
fonte
Eu precisava dos certificados apenas para Cygwin e git, então fiz o que o @esquifit postou. No entanto, eu tive que executar a etapa 5 manualmente, o c_rehash não estava disponível no meu sistema. Segui este guia: Instalando certificados CA na estrutura OpenSSL .
fonte
Eu precisava de duas coisas:
vá para a configuração do cygwin e inclua o pacote ' ca-certificates ' (está em Net) (como indicado em outro lugar).
Diga ao git onde encontrar os certificados instalados:
GIT_SSL_CAINFO = / usr / ssl / certs / ca-bundle.crt GIT_CURL_VERBOSE = 1 git ...
(A opção detalhada não é necessária)
Ou armazenando a opção permanentemente:
configuração do git --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt
git ...
fonte
Eu tive o mesmo problema. A importação ou comando de certificado para desabilitar a verificação SSL não funcionou. É uma senha expirada para o proxy de rede. Houve entrada da configuração do proxy. no arquivo .gitconfig presente no meu perfil de usuário do Windows. Acabei de remover a entrada inteira e ela começou a funcionar novamente.
fonte
Em um sistema Mac OSX 10.5, consegui que isso funcionasse com um método simples. Primeiro, execute os procedimentos do github e o teste, que funcionaram bem para mim, mostrando que meu certificado estava realmente bom. https://help.github.com/articles/generating-ssh-keys
Finalmente notei outro formato de URL para controles remotos. Eu tentei os outros acima e eles não funcionaram. http://git-scm.com/book/ch2-5.html
Um simples "git push myRemoteName" funcionou muito bem!
fonte
Recentemente (julho de 2014), tive um problema semelhante e descobri no OS X (10.9.4) que havia um certificado "DigiCert High Assurance EV Root CA" expirado (embora eu também tivesse outro não expirado).
Encontrei dois certificados com o nome "DigiCert High Assurance EV Root CA", um expirando em novembro de 2031 e o expirado em julho de 2014 (alguns dias antes). A exclusão do certificado expirado resolveu o problema para mim.
Espero que isto ajude.
fonte
Para aqueles que usam Msys / MinGW GIT, adicione este
fonte