Skip to main content

Configuración de la firma de confirmación web

Puedes habilitar la firma automática de confirmaciones realizadas en la interfaz web de GitHub Enterprise Server.

¿Quién puede utilizar esta característica?

Site administrators can configure web commit signing for tu instancia de GitHub Enterprise Server.

Acerca de la firma de confirmación web

Si habilitas la firma de confirmación web, GitHub Enterprise Server usará automáticamente GPG para firmar confirmaciones que los usuarios realizan en la interfaz web de tu instancia de GitHub Enterprise Server. Las confirmaciones firmadas por GitHub Enterprise Server tendrán un estado comprobado. Para obtener más información, vea «Acerca de la verificación de firma de confirmación».

Puedes habilitar la firma de confirmación web, rotar la clave privada usada para la firma de confirmación web y deshabilitar la firma de confirmación web.

Habilitación de la firma de confirmación web

  1. En el shell administrativo, crea una clave PGP. Anota la dirección de correo electrónico y el identificador de clave.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Usa el tipo de clave predeterminado y al menos 4096 bits sin expiración.
    • Usa web-flow como nombre de usuario. Si web-flow no está disponible o no se puede usar, usa cualquier nombre de usuario nuevo que sea único. Usa este nombre de usuario en los pasos siguientes de este artículo.
    • Si tienes una dirección de correo electrónico sin respuesta definida en Consola de administración, usa esa dirección de correo electrónico. Si no es así, usa cualquier dirección de correo electrónico, como web-flow@my-company.com. No es necesario que la dirección de correo electrónico sea válida.
    • La clave PGP no se puede proteger mediante una frase de contraseña.
  2. Define la clave como una variable de entorno para GitHub Enterprise Server, reemplazando <YOUR-KEY-ID> por el Id. de clave GPG.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Actualiza la configuración del servicio de firma de confirmación de GitHub Enterprise Server.

    Bash
    sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl
     
    nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
    
  4. Habilita la firma de confirmación web.

    Bash
    ghe-config app.github.web-commit-signing-enabled true
    
  5. Crea un nuevo usuario en tu instancia de GitHub Enterprise Server a través de la autenticación integrada o la autenticación externa. Para obtener más información, vea «Acerca de la administración de identidad y de acceso».

    • El nombre de usuario del usuario debe ser el mismo nombre de usuario que usaste al crear la clave PGP en el paso 1 anterior, por ejemplo, web-flow.
    • La dirección de correo electrónico del usuario debe ser la misma dirección que usaste al crear la clave PGP.
  6. Ejecuta el comando siguiente, pero reemplaza KEY-ID por el identificador de tu clave de PGP.

    Bash
    gpg --armor --export KEY-ID
    
  7. Copia la clave de PGP, que empieza por -----BEGIN PGP PUBLIC KEY BLOCK----- y termina con -----END PGP PUBLIC KEY BLOCK-----.

  8. Inicia sesión en GitHub Enterprise Server como el usuario creado para la firma de confirmación web, por ejemplo, web-flow.

  9. Agrega la clave PGP pública al perfil del usuario. Para obtener más información, vea «Adición de una clave de GPG a una cuenta de GitHub».

    Note

    No quites otras claves públicas de la lista de claves GPG. Si se elimina una clave pública, los commits firmados con la clave privada correspondiente dejarán de estar marcados como comprobados.

  10. Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haga clic en .

  11. Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.

  12. En la barra lateral " Administrador del sitio", haz clic en Consola de administración .

  13. En la barra lateral Settings, haga clic en Email.

  14. En "Dirección de correo electrónico sin respuesta", escribe la misma dirección de correo electrónico que usaste al crear la clave PGP.

    Note

    El campo "No-reply email address" solo se mostrará si has habilitado el correo electrónico para tu instancia de GitHub Enterprise Server. Para obtener más información, vea «Configurar el correo electrónico para notificaciones».

  15. En la barra lateral "Configuración" , haga clic en Guardar configuración.

    Note

    Al guardar la configuración en Consola de administración se restablecen los servicios del sistema, lo que podría generar un tiempo de inactividad visible para el usuario.

  16. Espera que se complete la fase de configuración.

Rotación de la clave privada usada para la firma de confirmación web

  1. En el shell administrativo, crea una clave PGP. Anota la dirección de correo electrónico y el identificador de clave.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Usa el tipo de clave predeterminado y al menos 4096 bits sin expiración.
    • Usa el nombre de usuario de firma de confirmación web, por ejemplo, web-flow.
    • Usa la dirección de correo electrónico sin respuesta definida en Consola de administración, que debe ser la misma que la dirección de correo electrónico del usuario de firma de confirmación web, por ejemplo, web-flow.
    • La clave PGP no se puede proteger mediante una frase de contraseña.
  2. Define la clave como una variable de entorno para GitHub Enterprise Server, reemplazando <YOUR-KEY-ID> por el Id. de clave GPG.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Actualiza la configuración del servicio de firma de confirmación de GitHub Enterprise Server.

    Bash
    sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl
     
    nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
    
  4. Ejecuta el comando siguiente, pero reemplaza KEY-ID por el identificador de tu clave de PGP.

    Bash
    gpg --armor --export KEY-ID
    
  5. Copia la clave de PGP, que empieza por -----BEGIN PGP PUBLIC KEY BLOCK----- y termina con -----END PGP PUBLIC KEY BLOCK-----.

  6. Inicia sesión en GitHub Enterprise Server como el usuario creado para la firma de confirmación web, por ejemplo, web-flow.

  7. Agrega la clave PGP pública al perfil del usuario. Para obtener más información, vea «Adición de una clave de GPG a una cuenta de GitHub».

    Note

    No quites otras claves públicas de la lista de claves GPG. Si se elimina una clave pública, los commits firmados con la clave privada correspondiente dejarán de estar marcados como comprobados.

Deshabilitación de la firma de confirmación web

Puedes deshabilitar la firma de confirmación web para tu instancia de GitHub Enterprise Server.

  1. En el shell administrativo, ejecuta el siguiente comando.

    Bash
    ghe-config app.github.web-commit-signing-enabled false
    
  2. Aplique la configuración.

    Bash
    ghe-config-apply