Skip to main content

Enterprise Server 3.20 está disponível no momento como versão candidata a lançamento.

Configurando criptografias TLS e SSH

Você pode configurar os conjuntos de criptografia e os algoritmos criptográficos que GitHub Enterprise Server usa para conexões TLS e SSH para atender a requisitos específicos de conformidade ou segurança.

Quem pode usar esse recurso?

Site administrators

Sobre o conjunto de cifras e a configuração de algoritmos

GitHub Enterprise Server permite configurar quais suites de cifras e algoritmos criptográficos usar para:

  •         **Conexões TLS** nas portas 443 (interface web HTTPS) e 8443 (console de gerenciamento HTTPS)
    
  •         **Conexões SSH** na porta 22 (operações do Git via SSH) e na porta 122 (acesso administrativo ao shell)
    

Os pacotes de criptografia seguros padrão são baseados em recomendações de proteção TLS padrão do setor e práticas recomendadas de segurança modernas. A maioria das organizações deve usar esses padrões, a menos que requisitos específicos de conformidade ou segurança determinem o contrário.

As organizações podem precisar personalizar conjuntos de criptografia e algoritmos criptográficos para atender a políticas de segurança organizacional específicas, padrões do setor ou requisitos regulatórios.

A partir do GitHub Enterprise Server 3.19, as criptografias TLS são configuráveis e o gateway da Web usa padrões de criptografia mais seguros. Para manter a compatibilidade retroativa com instâncias existentes, as instâncias recém-provisionadas adotarão esses novos padrões.

Aviso

Configurar conjuntos de criptografia excessivamente restritivos pode impedir que os clientes se conectem à sua instância. Sempre teste as alterações em um ambiente de não produção primeiro, verifique se pelo menos um conjunto de criptografias é compatível com seus clientes e verifique a conectividade após a aplicação de alterações de configuração.

Observação

Ao configurar conjuntos de criptografia TLS, use valores separados por vírgulas em seus comandos de configuração. GitHub Enterprise Server converte automaticamente delimitadores de vírgulas em dois-pontos para a configuração HAProxy. Os conjuntos de criptografia são avaliados na ordem especificada, portanto, liste suas criptografias preferenciais primeiro.

Configurando conjuntos de criptografia TLS

Você pode configurar os conjuntos de criptografia usados para conexões TLS 1.2 e TLS 1.3.

Listando pacotes de criptografia TLS disponíveis

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para exibir os pacotes de criptografia seguros padrão para TLS 1.2, execute o comando a seguir.

    Shell
    ghe-crypto list tlsv12-ciphersuites
    
  3. Para exibir os conjuntos de criptografia seguro padrão para TLS 1.3, execute o comando a seguir.

    Shell
    ghe-crypto list tlsv13-ciphersuites
    

Exibindo a configuração de criptografia atual

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para exibir os conjuntos de criptografia TLS 1.2 configurados, execute o comando a seguir.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites
    
  3. Para exibir os conjuntos de criptografia TLS 1.3 configurados, execute o comando a seguir.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites
    

    Se esses comandos retornarem valores vazios, a instância estará usando os padrões seguros.

Configurando conjuntos de criptografia TLS 1.2

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Verifique os conjuntos de criptografia TLS 1.2 desejados usando o ghe-crypto check comando. Substitua CIPHER1,CIPHER2,CIPHER3 por uma lista separada por vírgulas de conjuntos de criptografia.

    Shell
    ghe-crypto check tlsv12-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    Por exemplo:

    ghe-crypto check tlsv12-ciphersuites ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384
    
  3. Se a cadeia de caracteres de criptografia for válida, defina os conjuntos de criptografia TLS 1.2. Substitua CIPHER1,CIPHER2,CIPHER3 por sua lista separada por vírgulas.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    Por exemplo:

    ghe-config github-ssl.tlsv12-ciphersuites 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384'
    
  4. Verifique a configuração.

    Shell
    ghe-config-check
    
  5. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  6. Aguarde a conclusão da execução de suas configurações.

  7. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.

Configurando conjuntos de criptografia TLS 1.3

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Verifique os conjuntos de criptografia TLS 1.3 desejados usando o ghe-crypto check comando. Substitua CIPHER1,CIPHER2,CIPHER3 por uma lista separada por vírgulas de conjuntos de criptografia.

    Shell
    ghe-crypto check tlsv13-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    Por exemplo:

    ghe-crypto check tlsv13-ciphersuites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256
    
  3. Se a cadeia de caracteres de criptografia for válida, defina os conjuntos de criptografia TLS 1.3. Substitua CIPHER1,CIPHER2,CIPHER3 por sua lista separada por vírgulas.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    Por exemplo:

    ghe-config github-ssl.tlsv13-ciphersuites 'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256'
    
  4. Verifique a configuração.

    Shell
    ghe-config-check
    
  5. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  6. Aguarde a conclusão da execução de suas configurações.

  7. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.

Configurando algoritmos criptográficos SSH

Você pode configurar os algoritmos criptográficos usados para conexões SSH na porta 22 (operações do Git) e na porta 122 (acesso ao shell administrativo).

Listando algoritmos SSH disponíveis

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para exibir as criptografias SSH seguras padrão, execute o comando a seguir.

    Shell
    ghe-crypto list ssh-ciphers
    
  3. Para exibir os algoritmos mac SSH seguros padrão, execute o comando a seguir.

    Shell
    ghe-crypto list ssh-mac-algorithms
    
  4. Para exibir os algoritmos de troca de chaves SSH seguros padrão, execute o comando a seguir.

    Shell
    ghe-crypto list ssh-kex-algorithms
    
  5. Para exibir os tipos de assinatura SSH seguros padrão, execute o comando a seguir.

    Shell
    ghe-crypto list ssh-signature-types
    

Exibindo a configuração atual do SSH

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para exibir as criptografias SSH configuradas, execute o comando a seguir.

    Shell
    ghe-config github-ssl.ssh-ciphers
    
  3. Para exibir os algoritmos mac SSH configurados, execute o comando a seguir.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms
    
  4. Para exibir os algoritmos de troca de chaves SSH configurados, execute o comando a seguir.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms
    
  5. Para exibir os tipos de assinatura SSH configurados, execute o comando a seguir.

    Shell
    ghe-config github-ssl.ssh-signature-types
    

    Se esses comandos retornarem valores vazios, a instância estará usando os padrões seguros.

Configurando criptografias SSH

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Verifique as criptografias SSH desejadas usando o ghe-crypto check comando. Substitua cipher1,cipher2,cipher3 por uma lista separada por vírgulas de criptografias.

    Shell
    ghe-crypto check ssh-ciphers cipher1,cipher2,cipher3
    

    Por exemplo:

    ghe-crypto check ssh-ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
    
  3. Se a cadeia de caracteres de criptografia for válida, defina as criptografias SSH. Substitua cipher1,cipher2,cipher3 por sua lista separada por vírgulas.

    Shell
    ghe-config github-ssl.ssh-ciphers 'cipher1,cipher2,cipher3'
    

    Por exemplo:

    ghe-config github-ssl.ssh-ciphers 'chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com'
    
  4. Verifique a configuração.

    Shell
    ghe-config-check
    
  5. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  6. Aguarde a conclusão da execução de suas configurações.

  7. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.

Definindo algoritmos MAC SSH

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Verifique os algoritmos mac SSH desejados usando o ghe-crypto check comando. Substitua mac1,mac2,mac3 por uma lista separada por vírgulas de algoritmos MAC.

    Shell
    ghe-crypto check ssh-mac-algorithms mac1,mac2,mac3
    

    Por exemplo:

    ghe-crypto check ssh-mac-algorithms hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
    
  3. Se a cadeia de caracteres do algoritmo MAC for válida, defina os algoritmos MAC SSH. Substitua mac1,mac2,mac3 por sua lista separada por vírgulas.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms 'mac1,mac2,mac3'
    

    Por exemplo:

    ghe-config github-ssl.ssh-mac-algorithms 'hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com'
    
  4. Verifique a configuração.

    Shell
    ghe-config-check
    
  5. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  6. Aguarde a conclusão da execução de suas configurações.

  7. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.

Definindo algoritmos de troca de chaves SSH

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Verifique os algoritmos de troca de chaves SSH desejados usando o ghe-crypto check comando. Substitua kex1,kex2,kex3 por uma lista separada por vírgulas de algoritmos de troca de chaves.

    Shell
    ghe-crypto check ssh-kex-algorithms kex1,kex2,kex3
    

    Por exemplo:

    ghe-crypto check ssh-kex-algorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521
    
  3. Se a cadeia de caracteres do algoritmo de troca de chaves for válida, defina os algoritmos de troca de chaves SSH. Substitua kex1,kex2,kex3 por sua lista separada por vírgulas.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms 'kex1,kex2,kex3'
    

    Por exemplo:

    ghe-config github-ssl.ssh-kex-algorithms 'curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521'
    
  4. Verifique a configuração.

    Shell
    ghe-config-check
    
  5. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  6. Aguarde a conclusão da execução de suas configurações.

  7. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.

Definindo tipos de assinatura SSH

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Verifique os tipos de assinatura SSH desejados usando o ghe-crypto check comando. Substitua sig1,sig2,sig3 por uma lista separada por vírgulas de tipos de assinatura.

    Shell
    ghe-crypto check ssh-signature-types sig1,sig2,sig3
    

    Por exemplo:

    ghe-crypto check ssh-signature-types ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384
    
  3. Se a cadeia de caracteres de tipo de assinatura for válida, defina os tipos de assinatura SSH. Substitua sig1,sig2,sig3 por sua lista separada por vírgulas.

    Shell
    ghe-config github-ssl.ssh-signature-types 'sig1,sig2,sig3'
    

    Por exemplo:

    ghe-config github-ssl.ssh-signature-types 'ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384'
    
  4. Verifique a configuração.

    Shell
    ghe-config-check
    
  5. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  6. Aguarde a conclusão da execução de suas configurações.

  7. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.

Solução de problemas de configuração de criptografia

Se os clientes não puderem se conectar ao sua instância do GitHub Enterprise Server depois de alterar a configuração de criptografia, você poderá solucionar o problema.

  1. Verifique se seus clientes dão suporte às versões de protocolo TLS ou SSH configuradas.
  2. Verifique se pelo menos um pacote de criptografia configurado é compatível com seus clientes.
  3. Revise os logs da instância para ver se há falhas de handshake do TLS ou erros de conexão SSH. Para obter mais informações sobre como acessar logs, consulte Sobre os logs do sistema.
  4. Restaure temporariamente as configurações padrão para verificar se o problema está relacionado à criptografia. Para obter mais informações, consulte Restaurar o conjunto de criptografia padrão e as configurações de algoritmo.
  5. Se o problema persistir após a restauração de padrões, entre em contato com Suporte do GitHub Enterprise.

Restaurando configurações padrão de conjunto de criptografia e algoritmo

Para restaurar os conjuntos padrão de criptografia segura ou algoritmos, remova o valor de configuração.

  1. SSH para sua instância do GitHub Enterprise Server de destino. Para saber mais, confira Acessar o shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Desinstale a configuração. Substitua SETTING pelo nome da configuração que você deseja restaurar para padrões.

    Shell
    ghe-config --unset github-ssl.SETTING
    

    Por exemplo, para restaurar conjuntos de criptografia TLS 1.2 padrão:

    ghe-config --unset github-ssl.tlsv12-ciphersuites
    
  3. Para aplicar a configuração, execute o comando a seguir.

    Observação

    Durante uma execução de configuração, os serviços do sua instância do GitHub Enterprise Server podem ser reiniciados, o que pode causar um breve tempo de inatividade para os usuários.

    Shell
    ghe-config-apply
    
  4. Aguarde a conclusão da execução de suas configurações.

  5. Se você configurou uma mensagem de usuário ou um modo de manutenção, remova a mensagem e desabilite o modo de manutenção.