Skip to main content

Configuring web commit signing

You can enable auto-signing of commits made in the web interface of GitHub Enterprise Server.

Who can use this feature

Site administrators can configure web commit signing for your GitHub Enterprise Server instance.

About web commit signing

If you enable web commit signing, GitHub Enterprise Server will automatically use GPG to sign commits users make on the web interface of your GitHub Enterprise Server instance. Commits signed by GitHub Enterprise Server will have a verified status. For more information, see "About commit signature verification."

You can enable web commit signing, rotate the private key used for web commit signing, and disable web commit signing.

Enabling web commit signing

  1. No shell administrativo, crie uma chave PGP. Anote o endereço de email e a ID da chave.

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • Use o tipo de chave padrão e pelo menos 4096 bits sem expiração.
    • Use web-flow como o nome de usuário.
    • Use web-flow as the username. If web-flow is unavailable or unusable, use any new unique username. Use this username throughout the following steps in this article.
    • If you have a no-reply email address defined in the Console de Gerenciamento, use that email address. If not, use any email address, such as web-flow@my-company.com. The email address does not need to be valid.
  • A chave PGP não pode ser protegida por uma frase secreta.
  1. Defina a chave como uma variável de ambiente para GitHub Enterprise Server, substituindo <YOUR-KEY-ID> pela ID da chave GPG.

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
  2. Atualize as configurações para o serviço de assinatura de commit de GitHub Enterprise Server.

    Shell
    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
  3. Enable web commit signing.

    Shell
    ghe-config app.github.web-commit-signing-enabled true
  4. Apply the configuration, then wait for the configuration run to complete.

    Shell
    ghe-config-apply
  5. Create a new user on your GitHub Enterprise Server instance via built-in authentication or external authentication. For more information, see "About authentication for your enterprise."

    • The user's username must be the same username you used when creating the PGP key in step 1 above, for example, web-flow.
    • The user's email address must be the same address you used when creating the PGP key.
  6. Execute o comando a seguir, substituindo KEY-ID por sua ID de chave PGP.

    Shell
    gpg --armor --export KEY-ID
  7. Copie a chave PGP, começando com -----BEGIN PGP PUBLIC KEY BLOCK----- e terminando com -----END PGP PUBLIC KEY BLOCK-----.

  8. Efetue o login em GitHub Enterprise Server como o usuário web-flow.

  9. Adicione a chave PGP pública ao perfil do usuário. Para saber mais, confira "Como adicionar uma chave GPG a uma conta do GitHub".

    Observação: não remova outras chaves públicas da lista de chaves GPG. Se uma chave pública for excluída, todas as confirmações assinadas com a chave privada correspondente não serão mais marcadas como verificadas.

  10. Em uma conta administrativa no GitHub Enterprise Server, no canto superior direito de qualquer página, clique em .

    Captura de tela do ícone de foguete para acesso às configurações de administração do site

  11. Se você ainda não estiver na página "Administração do site", no canto superior esquerdo, clique em Administração do site.

    Captura de tela do link "Administração do site" 1. Na barra lateral à esquerda, clique em Console de Gerenciamento . Guia Console de Gerenciamento na barra lateral esquerda

  12. Na parte superior da página, clique em Configurações. Guia Configurações

  13. Na barra lateral esquerda, clique em Email. Guia Email

  14. Under "No-reply email address", type the same email address you used when creating the PGP key.

    Note: The "No-reply email address" field will only be displayed if you've enabled email for your GitHub Enterprise Server instance. For more information, see "Configuring email for notifications."

  15. Na barra lateral esquerda, clique em Salvar configurações.

    Captura de tela do botão Salvar configurações no Console de Gerenciamento

    Observação: se você salvar as configurações no Console de Gerenciamento, isso reiniciará os serviços do sistema, o que poderá resultar em tempo de inatividade visível pelo usuário.

  16. Aguarde a conclusão da execução de suas configurações.

    Configurar a instância

Rotating the private key used for web commit signing

  1. No shell administrativo, crie uma chave PGP. Anote o endereço de email e a ID da chave.

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • Use o tipo de chave padrão e pelo menos 4096 bits sem expiração.
    • Use web-flow como o nome de usuário.
    • Use the web commit signing user's username, for example, web-flow.
    • Use the no-reply email address defined in the Console de Gerenciamento, which should be the same as the email address of the web commit signing user, for example, web-flow.
  • A chave PGP não pode ser protegida por uma frase secreta.
  1. Defina a chave como uma variável de ambiente para GitHub Enterprise Server, substituindo <YOUR-KEY-ID> pela ID da chave GPG.

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
  2. Atualize as configurações para o serviço de assinatura de commit de GitHub Enterprise Server.

    Shell
    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
  3. Execute o comando a seguir, substituindo KEY-ID por sua ID de chave PGP.

    Shell
    gpg --armor --export KEY-ID
  4. Copie a chave PGP, começando com -----BEGIN PGP PUBLIC KEY BLOCK----- e terminando com -----END PGP PUBLIC KEY BLOCK-----.

  5. Efetue o login em GitHub Enterprise Server como o usuário web-flow.

  6. Adicione a chave PGP pública ao perfil do usuário. Para saber mais, confira "Como adicionar uma chave GPG a uma conta do GitHub".

    Observação: não remova outras chaves públicas da lista de chaves GPG. Se uma chave pública for excluída, todas as confirmações assinadas com a chave privada correspondente não serão mais marcadas como verificadas.

Disabling web commit signing

You can disable web commit signing for your GitHub Enterprise Server instance.

  1. In the administrative shell, run the following command.

    Shell
    ghe-config app.github.web-commit-signing-enabled false
  2. Apply the configuration.

    Shell
    ghe-config-apply