Skip to main content

Enterprise Server 3.20 actualmente está disponible como versión candidata para lanzamiento.

Configuración de cifrados TLS y SSH

Puede configurar los conjuntos de cifrado y los algoritmos criptográficos que GitHub Enterprise Server usa para las conexiones TLS y SSH para cumplir requisitos específicos de cumplimiento o seguridad.

¿Quién puede utilizar esta característica?

Site administrators

Acerca del conjunto de cifrado y la configuración del algoritmo

GitHub Enterprise Server permite configurar los conjuntos de cifrado y los algoritmos criptográficos utilizados para:

  •         **Conexiones TLS** en los puertos 443 (interfaz web HTTPS) y 8443 (consola de administración HTTPS)
    
  •         **Conexiones SSH** en el puerto 22 (operaciones de Git a través de SSH) y el puerto 122 (acceso al shell administrativo)
    

Los conjuntos de cifrado seguros predeterminados se basan en las recomendaciones de endurecimiento de TLS estándar del sector y en las mejores prácticas de seguridad modernas. La mayoría de las organizaciones deben usar estos valores predeterminados a menos que los requisitos de seguridad o cumplimiento específicos dicten lo contrario.

Es posible que las organizaciones necesiten personalizar conjuntos de cifrado y algoritmos criptográficos para cumplir directivas de seguridad organizativas específicas, estándares del sector o requisitos normativos.

A partir de GitHub Enterprise Server 3.19, los cifrados TLS se pueden configurar y la puerta de enlace web usa valores predeterminados de cifrado más seguros. Para mantener la compatibilidad retroactiva con las instancias existentes, las nuevas instancias aprovisionadas utilizarán estos nuevos valores predeterminados.

Advertencia

La configuración de conjuntos de cifrado demasiado restrictivos puede impedir que los clientes se conecten a la instancia. Pruebe siempre los cambios en un entorno que no sea de producción en primer lugar, asegúrese de que al menos un conjunto de cifrado sea compatible con los clientes y compruebe la conectividad después de aplicar los cambios de configuración.

Nota:

Al configurar conjuntos de cifrado TLS, use valores separados por comas en los comandos de configuración. GitHub Enterprise Server convierte automáticamente comas en dos puntos para la configuración de HAProxy. Los conjuntos de cifrado se evalúan en el orden especificado, por lo que enumere primero los cifrados preferidos.

Configuración de conjuntos de cifrado TLS

Puede configurar los conjuntos de cifrado que se usan para las conexiones TLS 1.2 y TLS 1.3.

Enumeración de conjuntos de cifrado TLS disponibles

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para ver los conjuntos de cifrado seguros predeterminados para TLS 1.2, ejecute el siguiente comando.

    Shell
    ghe-crypto list tlsv12-ciphersuites
    
  3. Para ver los conjuntos de cifrado seguros predeterminados para TLS 1.3, ejecute el siguiente comando.

    Shell
    ghe-crypto list tlsv13-ciphersuites
    

Visualización de la configuración actual del cifrado

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para ver los conjuntos de cifrado TLS 1.2 configurados, ejecute el siguiente comando.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites
    
  3. Para ver los conjuntos de cifrado TLS 1.3 configurados, ejecute el siguiente comando.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites
    

    Si estos comandos devuelven valores vacíos, la instancia usa los valores predeterminados seguros.

Establecimiento de conjuntos de cifrado TLS 1.2

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Compruebe los conjuntos de cifrado TLS 1.2 deseados mediante el ghe-crypto check comando . Reemplace por CIPHER1,CIPHER2,CIPHER3 una lista separada por comas de conjuntos de cifrado.

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

    Por ejemplo:

    ghe-crypto check tlsv12-ciphersuites ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384
    
  3. Si la cadena de cifrado es válida, establezca los conjuntos de cifrado TLS 1.2. Reemplace por CIPHER1,CIPHER2,CIPHER3 la lista separada por comas.

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

    Por ejemplo:

    ghe-config github-ssl.tlsv12-ciphersuites 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384'
    
  4. Compruebe la configuración.

    Shell
    ghe-config-check
    
  5. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  6. Espera que se complete la fase de configuración.

  7. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.

Establecimiento de conjuntos de cifrado TLS 1.3

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Compruebe los conjuntos de cifrado TLS 1.3 deseados mediante el ghe-crypto check comando . Reemplace por CIPHER1,CIPHER2,CIPHER3 una lista separada por comas de conjuntos de cifrado.

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

    Por ejemplo:

    ghe-crypto check tlsv13-ciphersuites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256
    
  3. Si la cadena de cifrado es válida, establezca los conjuntos de cifrado TLS 1.3. Reemplace por CIPHER1,CIPHER2,CIPHER3 la lista separada por comas.

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

    Por ejemplo:

    ghe-config github-ssl.tlsv13-ciphersuites 'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256'
    
  4. Compruebe la configuración.

    Shell
    ghe-config-check
    
  5. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  6. Espera que se complete la fase de configuración.

  7. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.

Configuración de algoritmos criptográficos SSH

Puede configurar los algoritmos criptográficos que se usan para las conexiones SSH en el puerto 22 (operaciones de Git) y el puerto 122 (acceso al shell administrativo).

Enumeración de algoritmos SSH disponibles

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para ver los cifrados SSH seguros predeterminados, ejecute el siguiente comando.

    Shell
    ghe-crypto list ssh-ciphers
    
  3. Para ver los algoritmos DE MAC SSH seguros predeterminados, ejecute el siguiente comando.

    Shell
    ghe-crypto list ssh-mac-algorithms
    
  4. Para ver los algoritmos de intercambio de claves SSH seguros predeterminados, ejecute el siguiente comando.

    Shell
    ghe-crypto list ssh-kex-algorithms
    
  5. Para ver los tipos de firma SSH seguros predeterminados, ejecute el siguiente comando.

    Shell
    ghe-crypto list ssh-signature-types
    

Visualización de la configuración actual de SSH

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Para ver los cifrados SSH configurados, ejecute el siguiente comando.

    Shell
    ghe-config github-ssl.ssh-ciphers
    
  3. Para ver los algoritmos DE MAC SSH configurados, ejecute el siguiente comando.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms
    
  4. Para ver los algoritmos de intercambio de claves SSH configurados, ejecute el siguiente comando.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms
    
  5. Para ver los tipos de firma SSH configurados, ejecute el siguiente comando.

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

    Si estos comandos devuelven valores vacíos, la instancia usa los valores predeterminados seguros.

Establecimiento de cifrados SSH

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Compruebe los cifrados SSH deseados mediante el ghe-crypto check comando . Reemplace cipher1,cipher2,cipher3 con una lista de cifrados separada por comas.

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

    Por ejemplo:

    ghe-crypto check ssh-ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
    
  3. Si la cadena de cifrado es válida, establezca los cifrados SSH. Reemplace por cipher1,cipher2,cipher3 la lista separada por comas.

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

    Por ejemplo:

    ghe-config github-ssl.ssh-ciphers 'chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com'
    
  4. Compruebe la configuración.

    Shell
    ghe-config-check
    
  5. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  6. Espera que se complete la fase de configuración.

  7. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.

Establecimiento de algoritmos MAC SSH

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Compruebe los algoritmos DE MAC SSH deseados mediante el ghe-crypto check comando . Reemplace por mac1,mac2,mac3 una lista separada por comas de algoritmos MAC.

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

    Por ejemplo:

    ghe-crypto check ssh-mac-algorithms hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
    
  3. Si la cadena del algoritmo MAC es válida, establezca los algoritmos MAC de SSH. Reemplace por mac1,mac2,mac3 la lista separada por comas.

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

    Por ejemplo:

    ghe-config github-ssl.ssh-mac-algorithms 'hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com'
    
  4. Compruebe la configuración.

    Shell
    ghe-config-check
    
  5. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  6. Espera que se complete la fase de configuración.

  7. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.

Establecimiento de algoritmos de intercambio de claves SSH

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Compruebe los algoritmos de intercambio de claves SSH deseados mediante el ghe-crypto check comando . Reemplace por kex1,kex2,kex3 una lista separada por comas de algoritmos de intercambio de claves.

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

    Por ejemplo:

    ghe-crypto check ssh-kex-algorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521
    
  3. Si la cadena del algoritmo de intercambio de claves es válida, establezca los algoritmos de intercambio de claves SSH. Reemplace por kex1,kex2,kex3 la lista separada por comas.

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

    Por ejemplo:

    ghe-config github-ssl.ssh-kex-algorithms 'curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521'
    
  4. Compruebe la configuración.

    Shell
    ghe-config-check
    
  5. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  6. Espera que se complete la fase de configuración.

  7. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.

Establecimiento de tipos de firma SSH

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Compruebe los tipos de firma SSH deseados mediante el ghe-crypto check comando . Reemplace por sig1,sig2,sig3 una lista separada por comas de tipos de firma.

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

    Por ejemplo:

    ghe-crypto check ssh-signature-types ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384
    
  3. Si la cadena de tipo de firma es válida, establezca los tipos de firma SSH. Reemplace por sig1,sig2,sig3 la lista separada por comas.

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

    Por ejemplo:

    ghe-config github-ssl.ssh-signature-types 'ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384'
    
  4. Compruebe la configuración.

    Shell
    ghe-config-check
    
  5. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  6. Espera que se complete la fase de configuración.

  7. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.

Solución de problemas de configuración de cifrado

Si los clientes no se pueden conectar a tu instancia de GitHub Enterprise Server después de cambiar la configuración de cifrado, puede solucionar el problema.

  1. Compruebe que los clientes admiten las versiones de protocolo TLS o SSH configuradas.
  2. Compruebe que al menos un conjunto de cifrado configurado es compatible con los clientes.
  3. Revisa los logs de instancia para fallos en el protocolo de enlace TLS o errores de conexión SSH. Para obtener más información sobre el acceso a los registros, consulte Acerca de los registros del sistema.
  4. Restaure temporalmente la configuración predeterminada para comprobar que el problema está relacionado con el cifrado. Para obtener más información, consulte Restauración del conjunto de cifrado predeterminado y la configuración del algoritmo.
  5. Si el problema persiste tras restaurar los valores predeterminados, póngase en contacto con Soporte técnico para GitHub Enterprise.

Restauración del conjunto de cifrado predeterminado y la configuración del algoritmo

Para restaurar los conjuntos o algoritmos de cifrado seguros predeterminados, desconjunte el valor de configuración.

  1. Acceda mediante SSH a la instancia de GitHub Enterprise Server de destino. Para más información, consulta Acceder al shell administrativo (SSH).

    ssh -p 122 admin@HOSTNAME
    
  2. Desactive la configuración. Reemplace SETTING por el nombre de la configuración que desea restaurar a los valores predeterminados.

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

    Por ejemplo, para restaurar conjuntos de cifrado TLS 1.2 predeterminados:

    ghe-config --unset github-ssl.tlsv12-ciphersuites
    
  3. Para aplicar la configuración, ejecuta el siguiente comando.

    Nota:

    Durante la ejecución de una configuración, los servicios de tu instancia de GitHub Enterprise Server pueden reiniciarse, y esto puede provocar un breve tiempo de inactividad para los usuarios.

    Shell
    ghe-config-apply
    
  4. Espera que se complete la fase de configuración.

  5. Si configuraste un mensaje de usuario o un modo de mantenimiento, quita el mensaje y deshabilita el modo de mantenimiento.