Resposta rápida
A partir de 7 de outubro de 2026, o GitHub Enterprise Cloud com data residency não aceitará conexões TLS de clientes que ofereçam somente X25519 para acordo de chaves. Se sua empresa usa um subdomínio dedicado em GHE.com, confirme antes do prazo que aplicações, proxies, appliances de segurança, runtimes e bibliotecas TLS também oferecem P-256, chamado secp256r1. P-384 também continuará disponível.
A mudança não remove X25519 de todos os produtos do GitHub. Ela afeta apenas clientes X25519-only conectando por HTTPS aos endpoints do GHE.com. GitHub.com, GitHub Enterprise Server e conexões SSH não estão incluídos no aviso. Clientes atuais normalmente já oferecem P-256 e não precisam de alteração.
O que muda em 7 de outubro de 2026
O GitHub informou em 30 de setembro que endpoints do GitHub Enterprise Cloud com data residency continuarão aceitando os grupos P-256 e P-384, mas deixarão de negociar quando o cliente apresentar somente X25519. Depois do prazo, esse cliente não conseguirá concluir o handshake TLS e, por consequência, não abrirá a conexão HTTPS.
O ponto decisivo é a palavra somente. Um cliente pode continuar oferecendo X25519 como preferência desde que sua lista também contenha P-256 ou P-384. Não troque certificados nem desative validações por causa desta mudança: o aviso trata do grupo usado no acordo de chaves, não da validade do certificado ou da permissão no repositório.
Quem precisa agir e quem não precisa
O escopo é o GHE.com usado por empresas que escolheram data residency. Cada enterprise fica em um subdomínio dedicado, e integrações REST e GraphQL usam endpoints próprios, como api.SUBDOMAIN.ghe.com. Isso é diferente do GitHub.com comum e do GitHub Enterprise Server instalado pela própria organização.
O risco maior está em configurações endurecidas manualmente: proxies de inspeção HTTPS, firewalls, appliances FIPS, agentes de CI antigos, imagens de contêiner, aplicações Java ou .NET com política criptográfica personalizada e bibliotecas OpenSSL configuradas com uma lista de grupos limitada a X25519. Navegadores, sistemas, GitHub CLI e bibliotecas atuais normalmente já incluem P-256, segundo o GitHub.
- Verifique se a URL usada pela organização termina em .ghe.com e pertence ao produto com data residency.
- Liste aplicações, runners, proxies, gateways e appliances que acessam esse hostname por HTTPS.
- Procure configurações de groups, curves, supported_groups ou ECC curve order limitadas a X25519.
- Confirme com o fornecedor do appliance se o tráfego de saída oferece P-256, não apenas o lado que recebe conexões.
Como testar P-256 sem alterar dados
Execute o teste no mesmo caminho de rede usado pela automação. Testar no notebook fora da VPN não valida um runner atrás do proxy corporativo. O OpenSSL s_client é uma ferramenta de diagnóstico TLS e aceita -connect para o destino, -servername para SNI e -groups para restringir o grupo oferecido durante o teste.
Substitua SUBDOMAIN pelo endereço real da empresa e rode: openssl s_client -connect SUBDOMAIN.ghe.com:443 -servername SUBDOMAIN.ghe.com -groups P-256 -brief. Um handshake concluído confirma que aquela máquina e aquele caminho de rede conseguem negociar P-256 naquele momento. Se sua versão do OpenSSL não reconhecer P-256, confira a nomenclatura aceita por ela e teste secp256r1 ou prime256v1 conforme a documentação da versão instalada.
- Registre sistema, versão do OpenSSL, hostname, rede e horário do teste.
- Teste o hostname principal e os subdomínios realmente usados por API, Actions, Packages ou páginas internas.
- Repita dentro de runners, contêineres e servidores que fazem chamadas automáticas.
- Se o handshake falhar, teste uma rota autorizada sem o proxy para localizar o componente que restringe os grupos.
- Não cole tokens, cookies, certificados privados ou headers de autenticação na saída compartilhada.
Valide Git, API e GitHub CLI no ambiente real
O teste TLS confirma a negociação, mas não substitui a operação do cliente real. Depois dele, valide uma ação somente de leitura com o mesmo runtime e as mesmas políticas de rede usados em produção. Um git ls-remote no repositório autorizado verifica o caminho HTTPS do Git sem fazer push. O comando gh api /meta --hostname SUBDOMAIN.ghe.com, documentado pelo GitHub, confere o caminho da CLI e devolve metadados da instância.
Separe falha TLS de autenticação. Mensagens como handshake failure, no suitable key share ou erro antes de qualquer resposta HTTP sugerem negociação. Códigos 401, 403 e 404 mostram que o HTTPS foi estabelecido e apontam para credencial, SSO, autorização ou URL. Registre o erro completo antes de atualizar componentes.
- Confira o destino configurado com git remote -v ou com a configuração do cliente da API.
- Execute uma leitura autorizada, como git ls-remote, no mesmo host que executa a automação.
- Use gh api /meta --hostname SUBDOMAIN.ghe.com quando a GitHub CLI estiver autenticada para a instância.
- Consulte o GitHub Status da região antes de atribuir toda falha ao TLS.
Como corrigir cliente, proxy e appliance
Atualize sistema operacional, runtime, GitHub CLI, biblioteca TLS, proxy e appliance para versões mantidas. Depois, remova a restrição X25519-only e inclua P-256 na lista de grupos aceitos. P-384 pode ser mantido como alternativa. Preserve X25519 se a política permitir; o problema não é oferecer X25519, mas não oferecer nenhum grupo que o GHE.com continuará aceitando.
Em ambientes gerenciados, a configuração efetiva pode vir de política corporativa, arquivo do runtime, variável de ambiente, imagem base ou dispositivo de inspeção. Corrija a origem da política e reconstrua contêineres e runners. Uma alteração manual dentro de um contêiner efêmero pode desaparecer no próximo deploy.
- Atualize os componentes pelo canal oficial do fornecedor.
- Adicione P-256 ou secp256r1 à política de grupos sem desativar a validação TLS.
- Reinicie apenas os serviços necessários dentro de uma janela controlada.
- Repita o s_client e a operação de leitura no mesmo caminho de rede.
- Documente o resultado e mantenha rollback para a política anterior, sem restaurar X25519-only depois do prazo.
Sintomas esperados depois do prazo
Um cliente incompatível falhará antes de receber uma página ou código HTTP. Git clone, fetch, chamadas REST, webhooks de saída ou integrações podem relatar erro de handshake, reset de conexão ou ausência de grupo compatível, dependendo da biblioteca. Um navegador moderno funcionar não prova que um processo antigo usa a mesma pilha TLS.
Se apenas uma integração falhar, compare sua biblioteca, imagem e rota de rede com um cliente funcional. Se vários serviços falharem ao mesmo tempo, verifique a página de status regional do GitHub e mudanças no proxy. Não rotacione tokens nem recrie repositórios enquanto a evidência apontar para o handshake.
O que não fazer
Atalhos podem mascarar o diagnóstico ou reduzir a segurança. A solução é oferecer um grupo aceito e manter a verificação da identidade do servidor.
- Não desative a validação de certificados e não use GIT_SSL_NO_VERIFY.
- Não remova X25519 por suposição; inclua P-256 e preserve uma política compatível com seus requisitos.
- Não trate SSH como prova de que o HTTPS está pronto, porque o GitHub informou que SSH não é afetado.
- Não teste somente no computador do administrador; valide runners, serviços e intermediários reais.
- Não publique logs com tokens, cookies, URLs privadas ou material de chave.
Limitações e próxima ação útil
Este guia foi verificado em 5 de outubro de 2026. O GitHub não publicou no aviso uma lista de versões mínimas por sistema, runtime ou appliance, e mensagens variam conforme a biblioteca e o intermediário. Um handshake P-256 bem-sucedido valida o caminho testado, mas não cobre automaticamente todos os subdomínios, proxies ou ambientes da empresa.
Até 7 de outubro, faça um inventário dos consumidores HTTPS do GHE.com, teste P-256 em cada caminho crítico e corrija qualquer política X25519-only. Guarde a evidência do teste, repita uma operação de leitura e monitore o status regional. Se o handshake continuar falhando após a atualização, envolva a equipe de rede e o GitHub Support com hostname, horário, versões e erro completo, sem credenciais.
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.
- X25519-only TLS ends for GHE.com on October 7GitHub Changelog
- About GitHub Enterprise Cloud with data residencyGitHub Docs
- Feature overview for GHE.comGitHub Docs
- Network details for GHE.comGitHub Docs
- OpenSSL s_clientOpenSSL Documentation
- Troubleshooting connectivity problemsGitHub Docs
- GitHub StatusGitHub
