Skip to main content

Como gerenciar chaves privadas para Aplicativos GitHub

Você pode gerenciar chaves privadas para autenticar com seus GitHub App.

Sobre as chaves privadas para GitHub Apps

Depois de criar um GitHub App, você precisará gerar uma chave privada para fazer solicitações à API do GitHub Enterprise Cloud como o próprio aplicativo. Por exemplo, você precisa de uma chave privada para assinar um JWT (Token Web JSON) e solicitar um token de acesso de instalação. Para obter mais informações, confira "Como gerar um JWT (Token Web JSON) para um Aplicativo GitHub"

Você pode criar várias chaves privadas e girá-las para evitar período de inatividade se uma chave for comprometida ou perdida. Para verificar se uma chave privada corresponde a uma chave pública, confira "Como verificar chaves privadas".

As chaves privadas não expiram e, assim, precisam ser revogadas manualmente. Para obter mais informações sobre como revogar uma chave privada, confira "Excluir chaves privadas".

Você deve manter as chaves privadas para GitHub Apps seguras. Para obter mais informações, confira "Como armazenar chaves privadas".

Gerar chaves privadas

Para gerar uma chave privada:

  1. No canto superior direito de qualquer página do GitHub, clique na foto do seu perfil.
  2. Acesse as configurações da sua conta.
    • Para um aplicativo de propriedade de uma conta pessoal, clique em Configurações.
    • Para um aplicativo de propriedade de uma organização:
      1. Clique em Suas organizações.
      2. À direita da organização, clique em Configurações.
  3. Na barra lateral esquerda, clique em Configurações do desenvolvedor.
  4. Na barra lateral esquerda, clique em GitHub Apps .
  5. Ao lado do GitHub App para o qual você deseja gerar uma chave privada, clique em Editar.
  6. Em "Chaves privadas", clique em Gerar uma chave privada.
  7. Você verá uma chave privada no formato PEM baixado no seu computador. Certifique-se de armazenar este arquivo porque o GitHub armazena apenas a parte pública da chave. Para obter mais informações sobre como armazenar sua chave com segurança, confira "Como armazenar chaves privadas".

Observação: se você estiver usando uma biblioteca que exija um formato de arquivo específico, o arquivo PEM que você baixar estará no formato PKCS#1 RSAPrivateKey.

Verificar chaves privadas

O GitHub Enterprise Cloud gera uma impressão digital para cada par de chave privada e pública usando a função hash SHA-256. Você pode verificar se a sua chave privada corresponde à chave pública armazenada no GitHub Enterprise Cloud, gerando a impressão digital da sua chave privada e comparando-a com a impressão digital exibida no GitHub Enterprise Cloud.

Para verificar uma chave privada:

  1. Encontre a impressão digital para o par de chaves privada e pública que deseja verificar na seção "Chaves privadas" da página de configurações do GitHub App. Para obter mais informações, confira "Como gerar chaves privadas".

    Captura de tela de uma chave privada em uma página de configurações do GitHub App. A impressão digital, a parte da chave privada após os dois-pontos, está contornada em laranja escuro.

  2. Gere a impressão digital da chave privada (PEM) localmente usando o seguinte comando:

    openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
    
  3. Compare os resultados da impressão digital gerada localmente com a impressão digital que você vê no GitHub Enterprise Cloud.

Apagar chaves privadas

Você pode remover uma chave privada perdida ou comprometida excluindo-a, mas deve regenerar uma nova chave antes de poder excluir a chave existente.

  1. No canto superior direito de qualquer página do GitHub, clique na foto do seu perfil.
  2. Acesse as configurações da sua conta.
    • Para um aplicativo de propriedade de uma conta pessoal, clique em Configurações.
    • Para um aplicativo de propriedade de uma organização:
      1. Clique em Suas organizações.
      2. À direita da organização, clique em Configurações.
  3. Na barra lateral esquerda, clique em Configurações do desenvolvedor.
  4. Na barra lateral esquerda, clique em GitHub Apps .
  5. Ao lado do GitHub App para o qual você deseja excluir uma chave privada, clique em Editar.
  6. Em "Chaves privadas", à direita da chave privada que você deseja excluir, clique em Excluir.
  7. Quando solicitado, confirme se deseja excluir a chave privada clicando em Excluir. Se o GitHub App tiver apenas uma chave, será necessário gerar uma nova antes de excluir a antiga. Para obter mais informações, confira "Como gerar chaves privadas".

Armazenar chaves privadas

A chave privada é o segredo mais valioso para um GitHub App. Considere armazenar a chave em um cofre de chaves, como o Azure Key Vault, e torná-la somente para assinatura. Isso ajuda a garantir que você não perca a chave privada. Depois que a chave privada é carregada no cofre de chaves, ela nunca poderá ser lida por ali. Só poderá ser usada para assinar itens, e o acesso a ela é determinado pelas regras de infraestrutura.

Como alternativa, você pode armazenar a chave como uma variável de ambiente. Isso não é tão forte quanto armazenar a chave em um cofre. Se um invasor conseguir acesso ao ambiente, ele poderá ler a chave privada e obter autenticação persistente como o GitHub App.

Você não deve codificar a chave privada em seu aplicativo, mesmo que o código seja armazenado em um repositório privado.

Para obter mais informações, confira "Práticas recomendadas para criar um aplicativo do GitHub".