Caiu ou Não?Pesquisar serviço
PT
GitHub e segurança

GitHub desativou SHA-1 no HTTPS: como corrigir falhas no Git

O GitHub desativou SHA-1 no HTTPS em 15 de setembro. Clientes antigos precisam de Git, sistema e bibliotecas TLS atualizados.

Computador conectado ao GitHub por HTTPS com indicadores de compatibilidade criptográfica

Resposta rápida

O GitHub desativou o uso de SHA-1 no HTTPS de github.com e das CDNs parceiras em 15 de setembro de 2026. Se clone, fetch, pull, uma chamada à API ou o próprio site passou a falhar em um computador antigo, atualize o Git, o sistema operacional e as bibliotecas usadas para TLS. Não desative a verificação do certificado.

A mudança inclui GitHub Enterprise Cloud e Enterprise Cloud with Data Residency. GitHub Enterprise Server não foi afetado. Antes de alterar o ambiente, confira o GitHub Status e teste o mesmo endereço em um navegador moderno ou outra máquina para separar incompatibilidade local de uma indisponibilidade real.

O que mudou em 15 de setembro

O cronograma oficial previa um teste temporário em 14 de julho e a remoção completa em 15 de setembro. O GitHub confirmou no dia 15 que concluiu a desativação em github.com e nas CDNs parceiras.

A alteração alcança navegadores, programas que chamam a API do GitHub e clientes Git que enviam ou recebem dados por HTTPS. O anúncio trata especificamente da negociação HTTPS e TLS com os serviços afetados; autenticação, permissão e integridade do repositório continuam sendo diagnósticos separados.

Quem pode ser afetado

O risco está em ambientes que dependem de algoritmos antigos durante a conexão segura. Isso pode acontecer em um navegador desatualizado, uma biblioteca usada por uma integração, um cliente Git antigo ou um sistema operacional sem componentes TLS atuais.

A versão exibida por git --version não conta toda a história. O Git pode usar backends HTTPS diferentes conforme o sistema, como OpenSSL no Linux. Por isso, a orientação oficial é manter atualizados o Git, o sistema operacional e os componentes que fazem a conexão segura.

Como confirmar se a falha é de compatibilidade

Registre a mensagem completa e o horário antes de mudar qualquer configuração. Erro de TLS ou de negociação é diferente de 401, 403, repositório inexistente, permissão negada, falha de DNS ou timeout. O guia do GitHub também recomenda conferir versão do Git, URL do remoto, credenciais e acesso ao repositório nas falhas de clone por HTTPS.

  • Abra o GitHub Status e confirme se Git Operations está operacional.
  • No navegador usado pela máquina, abra https://github.dev. O GitHub usa esse endereço como teste porque SHA-1 já estava desativado nele antes da remoção geral.
  • Veja o remoto com git remote -v e confirme que a URL e o repositório estão corretos.
  • Execute git --version e registre também a versão do sistema operacional.
  • Teste sem alterar dados com git ls-remote https://github.com/OWNER/REPOSITORY.git e guarde a saída completa.
  • Repita em uma máquina atualizada e, se possível, fora do proxy corporativo. Se apenas o ambiente antigo falhar, a incompatibilidade local ganha força.

Como corrigir Git, API e navegador

Atualize pelos canais oficiais do sistema. Em estações e servidores, isso normalmente envolve o pacote do Git, as bibliotecas de TLS e certificados e o próprio sistema operacional. Em contêineres e runners, reconstrua a imagem a partir de uma base mantida em vez de alterar somente o executável do Git.

Para integrações com a API, atualize o runtime e a biblioteca HTTP usados pelo processo real. Uma página abrir no navegador não prova que um serviço escrito em outra linguagem usa a mesma pilha TLS. Depois da atualização, repita exatamente o teste que falhava e valide também autenticação e permissões.

  • Aplique as atualizações de segurança do sistema operacional.
  • Instale uma versão recente do Git pelo canal oficial da plataforma.
  • Atualize o runtime e a biblioteca HTTP de scripts e integrações que chamam a API.
  • Recrie imagens de contêiner e runners para remover bibliotecas antigas das camadas em cache.
  • Repita github.dev, git ls-remote e a operação original.

Proxy corporativo e inspeção HTTPS

Um proxy, firewall ou produto de inspeção HTTPS pode negociar TLS em nome do cliente. Nesse caso, atualizar apenas o Git pode não bastar. Compare uma conexão direta autorizada com a rota corporativa e peça à equipe de rede para verificar os algoritmos e certificados usados pelo intermediário.

Não instale certificados recebidos por mensagem nem remova a validação TLS para contornar o erro. A cadeia de confiança corporativa deve ser distribuída por um canal administrado e o proxy precisa oferecer algoritmos compatíveis tanto ao cliente quanto ao GitHub.

Usar SSH é uma alternativa, não um atalho

O GitHub permite clonar por SSH quando a chave já está configurada na conta. Essa alternativa pode manter as operações Git enquanto o ambiente HTTPS é corrigido, mas não resolve navegadores nem integrações com a API e não deve esconder um sistema sem atualizações de segurança.

  • Confirme a chave com ssh -T git@github.com e verifique a conta indicada na resposta.
  • Copie a URL SSH exibida pelo próprio repositório.
  • Troque o remoto com git remote set-url origin git@github.com:OWNER/REPOSITORY.git.
  • Execute git remote -v e valide fetch e push sem expor chaves privadas.

O que não fazer

Atalhos que desligam controles de segurança podem transformar uma falha de compatibilidade em risco de interceptação. Corrija a pilha TLS e preserve a evidência do erro.

  • Não defina http.sslVerify como false e não use GIT_SSL_NO_VERIFY.
  • Não fixe cifras antigas ou reative SHA-1 apenas para fazer a conexão passar.
  • Não baixe Git, bibliotecas ou certificados de fontes desconhecidas.
  • Não trate 401, 403 ou Repository not found como falha de SHA-1; confira autenticação, SSO, URL e permissões.

Limites e próxima ação útil

Este guia foi verificado em 16 de setembro de 2026. Mensagens variam conforme Git, sistema, backend TLS e proxy, e a página de status mostra disponibilidade agregada. Um teste bem-sucedido em outra rede não identifica sozinho qual componente local está antigo.

Comece pelo GitHub Status e por https://github.dev. Se o serviço estiver operacional e apenas um ambiente falhar, registre versões e erro completo, atualize Git, sistema e bibliotecas TLS e teste novamente. Se a conexão segura continuar falhando, use o verificador SSL e o diagnóstico web do Caiu ou Não? para separar DNS, certificado e resposta HTTP antes de envolver a equipe de rede.

Faça o próximo teste

Fontes consultadas

Os links abaixo servem para conferir conceitos, orientações oficiais e o critério editorial usado neste conteúdo.

Outros guias ligados ao mesmo tipo de problema.