Skip to main content

Esta versão do GitHub Enterprise Server será descontinuada em 2024-03-07. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Configurar a assinatura de commit da Web

Você pode habilitar a assinatura automática de commits feitos na interface da Web do GitHub Enterprise Server.

Quem pode usar esse recurso?

Site administrators can configure web commit signing for sua instância do GitHub Enterprise Server.

Sobre a assinatura de commit da Web

Se você habilitar a assinatura de commit da Web, o GitHub Enterprise Server usará automaticamente o GPG para assinar os commits que os usuários fizerem na interface da Web do sua instância do GitHub Enterprise Server. Os commits assinados por GitHub Enterprise Server terão um status verificado. Para obter mais informações, confira "Sobre a verificação de assinatura de commit".

Você pode habilitar a assinatura de commit da Web, alternar a chave privada usada para a assinatura de commit da Web e desabilitar a assinatura de commit da Web.

Habilitar a assinatura de commit da Web

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

    Bash
    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. Se o web-flow não estiver disponível ou não puder ser utilizado, use qualquer novo nome de usuário exclusivo. Use esse nome de usuário nas etapas a seguir deste artigo.
    • Se você tiver um endereço de email sem resposta definido em Console de Gerenciamento, use esse endereço de email. Caso contrário, use qualquer endereço de email, como web-flow@my-company.com. O endereço de email não precisa ser válido.
    • A chave PGP não pode ser protegida por uma frase secreta.
  2. Defina a chave como uma variável de ambiente para GitHub Enterprise Server, substituindo <YOUR-KEY-ID> pela ID da chave GPG.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Atualize as configurações para o serviço de assinatura de commit 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. Habilite a assinatura de commit da Web.

    Bash
    ghe-config app.github.web-commit-signing-enabled true
    
  5. Crie um usuário no sua instância do GitHub Enterprise Server por meio da autenticação integrada ou da autenticação externa. Para obter mais informações, confira "Sobre o gerenciamento de identidades e acesso".

    • O nome de usuário do usuário precisa ser o mesmo usado quando a chave PGP foi criada na etapa 1 acima, por exemplo, web-flow.
    • O endereço de email do usuário precisa ser o mesmo endereço que você usou ao criar a chave PGP.
  6. Execute o comando a seguir, substituindo KEY-ID por sua ID de chave PGP.

    Bash
    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. Entre em GitHub Enterprise Server como o usuário criado para assinatura de confirmação da Web, por exemplo, web-flow.

  9. Adicione a chave PGP pública ao perfil do usuário. Para obter mais informações, 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 .

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

  12. Na barra lateral " Administrador do site", clique em Console de Gerenciamento .

  13. Na barra lateral Configurações, clique em Email.

  14. Em "Endereço de email sem resposta", digite o mesmo endereço de email usado ao criar a chave PGP.

    Observação: o campo "Endereço de email sem resposta" só será exibido se você tiver habilitado o email no sua instância do GitHub Enterprise Server. Para obter mais informações, confira "Configurar notificações de e-mail".

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

    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.

Girar a chave privada usada para assinatura de commit da Web

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

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Use o tipo de chave padrão e pelo menos 4096 bits sem expiração.
    • Use o nome de usuário do usuário de assinatura de commit da Web, por exemplo, web-flow.
    • Use o endereço de email sem resposta definido no Console de Gerenciamento, que deve ser igual ao endereço de email do usuário de assinatura de commit da Web, por exemplo, web-flow.
    • A chave PGP não pode ser protegida por uma frase secreta.
  2. Defina a chave como uma variável de ambiente para GitHub Enterprise Server, substituindo <YOUR-KEY-ID> pela ID da chave GPG.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Atualize as configurações para o serviço de assinatura de commit 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. Execute o comando a seguir, substituindo KEY-ID por sua ID de chave PGP.

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

  6. Entre em GitHub Enterprise Server como o usuário criado para assinatura de confirmação da Web, por exemplo, web-flow.

  7. Adicione a chave PGP pública ao perfil do usuário. Para obter mais informações, 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.

Desabilitar a assinatura de commit da Web

Você pode desabilitar a assinatura de commit da Web no sua instância do GitHub Enterprise Server.

  1. No shell administrativo, execute o comando a seguir.

    Bash
    ghe-config app.github.web-commit-signing-enabled false
    
  2. Aplicar a configuração.

    Bash
    ghe-config-apply