Sobre claves privadas para GitHub Apps
Después de crear una GitHub App, necesitarás generar una clave privada para poder realizar solicitudes a la API de GitHub como la aplicación misma. 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 token web JSON (JWT) para una aplicación de GitHub.
Puedes crear varias claves privadas para una aplicación. Debes usar varias claves para rotar las claves sin tiempo de inactividad en caso de que se produzca un riesgo de clave.
Las claves privadas no expiran y, en su lugar, deben revocarse manualmente. Para obtener más información sobre cómo revocar o quitar 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.
Para comprobar que una clave privada coincide con una clave pública, consulta Verificación de claves privadas.
Generación de claves privadas
Para generar una llave privada:
- En la esquina superior derecha de cualquier página, en GitHub, haz clic en la fotografía del perfil.
- 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:
- Haga clic en Sus organizaciones.
- A la derecha de la organización, haga clic en Configuración.
- En la barra lateral de la izquierda, haz clic en Developer settings.
- En la barra lateral de la izquierda, haga clic en GitHub Apps .
- Junto a los datos GitHub App para los que quieres generar una clave privada, haz clic en Editar.
- En "Claves privadas", haz clic en Generar una clave privada.
- Verás una llave privada en formato PEM que se descarga en tu ordenador. Asegúrese de almacenar este archivo porque GitHub solo almacena la parte pública de la clave. 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 claves pública y privada mediante la función de hash SHA-256. Puedes comprobar que tu clave privada coincide con la clave pública almacenada en GitHub si generas la huella digital de tu clave privada y la comparas con la huella digital que se muestra en GitHub.
Para verificar una llave privada:
-
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.

-
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 -
Compara los resultados de la huella digital generada localmente con la 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.
- Junto a los datos GitHub App para los que quieres eliminar una clave privada, haz clic en Editar.
- En "Claves privadas", a la derecha de la clave privada que quieres eliminar, haz clic en Eliminar.
- 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. Considere la posibilidad de almacenar la clave en un almacén de claves, como Azure Key Vault y convertirlo en solo inicio de sesión. 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 fuerte como almacenar la clave 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 más información, consulta Procedimientos recomendados para crear una aplicación de GitHub.