Skip to main content

Administración de claves privadas para aplicaciones de GitHub

Puedes administrar claves privadas para autenticarte con GitHub App.

Sobre claves privadas para GitHub Apps

Después de crear GitHub App, deberás generar una clave privada para realizar solicitudes a la API de GitHub como la propia aplicación. Por ejemplo, necesitas una clave privada para firmar un JSON Web Token (JWT) para solicitar un token de acceso a la instalación. Para obtener más información, consulta "Generación de un JSON Web Token (JWT) para una aplicación de GitHub"

Puedes crear varias llaves privadas y rotarlas para prevenir el tiempo de inactividad si alguna llave se pone en riesgo o se pierde. Para comprobar que una clave privada coincide con una clave pública, consulta Verificación de claves privadas.

Las claves privadas no expiran y, en su lugar, deben revocarse manualmente. Para obtener más información sobre cómo revocar una clave privada, consulta “Eliminación de claves privadas”.

Tienes que mantener las claves privadas para GitHub Apps seguras. Para obtener más información, consulta "Almacenamiento de claves privadas".

Generación de claves privadas

Para generar una llave privada:

  1. En la esquina superior derecha de cualquier página en GitHub, haga clic en su fotografía de perfil.
  2. Navega a la configuración de tu cuenta.
    • Para una aplicación propiedad de una cuenta personal, haga clic en Configuración.
    • Para una aplicación propiedad de una organización:
      1. Haga clic en Sus organizaciones.
      2. A la derecha de la organización, haga clic en Configuración.
  3. En la barra lateral izquierda, haz clic en Configuración del desarrollador.
  4. En la barra lateral de la izquierda, haga clic en GitHub Apps .
  5. Junto a los datos GitHub App para los que quieres generar una clave privada, haz clic en Editar.
  6. En "Claves privadas", haz clic en Generar una clave privada.
  7. Verás una llave privada en formato PEM que se descarga en tu ordenador. Asegúrate de almacenar este archivo, ya que GitHub solo almacena la porción pública de la llave. Para obtener más información sobre cómo almacenar la clave de forma segura, consulta "Almacenamiento de claves privadas".

Nota: Si usas una biblioteca que requiere un formato de archivo específico, el archivo PEM que descargues estará en formato PKCS#1 RSAPrivateKey.

Verificar las llaves privadas

GitHub genera una huella digital para cada par de llaves pública y privada utilizando la función de hash SHA-256. Puedes verificar que tu llave privada empate con la llave pública almacenada en GitHub generando la huella digital de tu llave privada y comparándola con la huella digital que se muestra en GitHub.

Para verificar una llave privada:

  1. Encuentra la huella digital del par de llaves pública y privada que quieras verificar en la sección "Llaves privadas" de la página de configuración de tu GitHub App. Para obtener más información, consulta Generación de claves privadas.

    Captura de pantalla de una clave privada en una página de configuración de GitHub App. La huella digital, la parte de la clave privada después de los dos puntos, se describe en naranja oscuro.

  2. Genera la huella digital de tu clave privada (PEM) localmente utilizando el siguiente comando:

    openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
    
  3. Compara los resultados de la huella digital generada localmente con aquella que ves en GitHub.

Borra las llaves privadas

Puedes quitar una clave privada perdida o comprometida eliminándola, pero tienes que generar una nueva para poder eliminar la clave existente.

  1. En la esquina superior derecha de cualquier página en GitHub, haga clic en su fotografía de perfil.
  2. Navega a la configuración de tu cuenta.
    • Para una aplicación propiedad de una cuenta personal, haga clic en Configuración.
    • Para una aplicación propiedad de una organización:
      1. Haga clic en Sus organizaciones.
      2. A la derecha de la organización, haga clic en Configuración.
  3. En la barra lateral izquierda, haz clic en Configuración del desarrollador.
  4. En la barra lateral de la izquierda, haga clic en GitHub Apps .
  5. Junto a los datos GitHub App para los que quieres eliminar una clave privada, haz clic en Editar.
  6. En "Claves privadas", a la derecha de la clave privada que quieres eliminar, haz clic en Eliminar.
  7. Cuando se te solicite, confirma que quieres eliminar la clave privada haciendo clic en Eliminar. Si tu GitHub App solo tiene una clave, deberás generar una nueva antes de eliminar la antigua. Para obtener más información, consulta "Generación de claves privadas".

Almacenamiento de claves privadas

La clave privada es el secreto más valioso para GitHub App. Considera la posibilidad de almacenar la clave en un almacén de claves, como Azure Key Vault y convertirlo en solo firma. Esta acción ayuda a garantizar que la clave privada no se pueda perder. Una vez que la clave privada se carga en el almacén de claves, nunca se puede leer desde ahí. Solo se puede usar para firmar elementos y el acceso a la clave privada viene determinado por las reglas de infraestructura.

Como alternativa, la clave se puede almacenar como una variable de entorno. Esto no es tan seguro como hacerlo en un almacén de claves. Si un atacante obtiene acceso al entorno, puede leer la clave privada y obtener autenticación persistente como GitHub App.

No deberías codificar la clave privada de forma rígida en la aplicación, incluso si el código se almacena en un repositorio privado.

Para obtener más información, vea «Procedimientos recomendados para crear una aplicación de GitHub».