Informationen zu privaten Schlüsseln für GitHub Apps
Nachdem du eine GitHub App erstellt hast, musst du einen privaten Schlüssel generieren, um Anforderungen an die GitHub Enterprise Cloud-API als Anwendung selbst zu senden. Beispielsweise benötigst du einen privaten Schlüssel, um ein JSON-Webtoken (JWT) zu signieren, um ein Installationszugriffstoken anzufordern. Weitere Informationen findest du unter Generieren eines JSON Web Token (JWT) für eine GitHub-App.
Du kannst mehrere private Schlüssel erstellen und diese rotieren, um Ausfallzeiten zu verhindern, wenn ein Schlüssel kompromittiert wird oder verloren geht. Informationen zum Überprüfen, ob ein privater Schlüssel mit einem öffentlichen Schlüssel übereinstimmt, findest du unter Überprüfen privater Schlüssel.
Private Schlüssel laufen nicht ab und müssen stattdessen manuell widerrufen werden. Weitere Informationen zum Widerrufen eines privaten Schlüssels finden Sie unter „Löschen privater Schlüssel“.
Du musst private Schlüssel für GitHub Apps sicher aufbewahren. Weitere Informationen findest du unter Speichern privater Schlüssel.
Generieren privater Schlüssel
So generierst du einen privaten Schlüssel
-
Klicke auf GitHub in der oberen rechten Ecke einer beliebigen Seite auf dein Profilfoto.
-
Navigieren Sie zu den Einstellungen für Ihr Konto.
- Klicken Sie bei einer App, die zu einem persönlichen Konto gehört, auf Einstellungen.
- Für eine App im Besitz einer Organisation:
- Klicke Sie auf Ihre Organisationen.
- Klicken Sie rechts neben der Organisation auf Einstellungen.
- Für eine App im Besitz eines Unternehmens:
- Wenn Sie Enterprise Managed Users verwenden, klicken Sie auf Ihr Unternehmen, um direkt zu den Enterprise-Konto Einstellungen zu wechseln.
- Wenn Sie persönliche Konten verwenden, klicken Sie auf Ihre Unternehmen und dann rechts neben dem Unternehmen auf Einstellungen.
-
Navigieren Sie zu den GitHub App-Einstellungen.
- Für eine App, die einem persönlichen Konto oder einer Organisation gehört:
- Klicken Sie in der linken Randleiste auf Entwicklereinstellungen, und dann auf GitHub Apps.
- Für eine App im Besitz eines Unternehmens:
- Klicken Sie in der linken Randleiste unter „Einstellungen“, auf GitHub Apps.
- Für eine App, die einem persönlichen Konto oder einer Organisation gehört:
-
Klicke neben der GitHub App, für die du einen privaten Schlüssel generieren möchtest, auf Bearbeiten.
-
Klicke unter „Private Schlüssel“ auf Privaten Schlüssel generieren.
-
Es wird ein privater Schlüssel im PEM-Format auf deinen Computer heruntergeladen. Du muss diese Datei unbedingt speichern, da GitHub nur den öffentlichen Teil des Schlüssels speichert. Weitere Informationen zum sicheren Speichern deines Schlüssels findest du unter Speichern privater Schlüssel.
Hinweis: Wenn du eine Bibliothek verwendest, die ein bestimmtes Dateiformat erfordert, weist die heruntergeladene PEM-Datei das Format PKCS#1 RSAPrivateKey
auf.
Überprüfen privater Schlüssel
GitHub Enterprise Cloud generiert mit der SHA-256-Hashfunktion einen Fingerabdruck für jedes Paar aus privatem und öffentlichem Schlüssel. Du kannst überprüfen, ob dein privater Schlüssel dem öffentlichen Schlüssel entspricht, der auf GitHub Enterprise Cloud gespeichert ist, indem du den Fingerabdruck deines privaten Schlüssels generierst und mit dem Fingerabdruck vergleichst, der auf GitHub Enterprise Cloud angezeigt wird.
So überprüfst du einen privaten Schlüssel
-
Den Fingerabdruck für das Schlüsselpaar aus privatem und öffentlichem Schlüssel, das du überprüfen möchtest, findest du auf der Seite mit den Einstellungen für deine GitHub App im Abschnitt „Private Schlüssel“ findest. Weitere Informationen findest du unter Generieren eines privaten Schlüssels.
-
Generiere den Fingerabdruck deines privaten Schlüssels (PEM) lokal mithilfe des folgenden Befehls:
openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
-
Vergleiche die Ergebnisse des lokal generierten Fingerabdrucks mit dem Fingerabdruck, der in GitHub Enterprise Cloud angezeigt wird.
Löschen privater Schlüssel
Du kannst einen verlorenen oder kompromittierten privaten Schlüssel entfernen, indem du ihn löschst. Du musst jedoch einen neuen Schlüssel generieren, bevor du den vorhandenen Schlüssel löschen kannst.
- Klicke auf GitHub in der oberen rechten Ecke einer beliebigen Seite auf dein Profilfoto.
- Navigieren Sie zu den Einstellungen für Ihr Konto.
- Klicken Sie bei einer App, die zu einem persönlichen Konto gehört, auf Einstellungen.
- Für eine App im Besitz einer Organisation:
- Klicke Sie auf Ihre Organisationen.
- Klicken Sie rechts neben der Organisation auf Einstellungen.
- Für eine App im Besitz eines Unternehmens:
- Wenn Sie Enterprise Managed Users verwenden, klicken Sie auf Ihr Unternehmen, um direkt zu den Enterprise-Konto Einstellungen zu wechseln.
- Wenn Sie persönliche Konten verwenden, klicken Sie auf Ihre Unternehmen und dann rechts neben dem Unternehmen auf Einstellungen.
- Klicke auf der linken Seitenleiste auf Entwicklereinstellungen.
- Klicke auf der linken Randleiste auf GitHub Apps .
- Klicke neben der GitHub App, für die du einen privaten Schlüssel löschen möchtest, auf Bearbeiten.
- Klicke unter „Private Schlüssel“ rechts neben dem privaten Schlüssel, den du löschen möchtest, auf Löschen.
- Wenn du dazu aufgefordert wirst, bestätige, dass du den privaten Schlüssel löschen möchtest, indem du auf Löschen klickst. Wenn deine GitHub App nur über einen einzigen Schlüssel verfügt, musst du einen neuen Schlüssel generieren, bevor du den alten Schlüssel löschst. Weitere Informationen findest du unter Generieren privater Schlüssel.
Speichern privater Schlüssel
Der private Schlüssel ist das wertvollste Geheimnis für eine GitHub App. Du solltest erwägen, den Schlüssel in einem Schlüsseltresor wie Azure Key Vault zu speichern und nur zum Signieren zu verwenden. So lässt sich sicherstellen, dass der private Schlüssel nicht verlorengehen kann. Sobald der private Schlüssel in den Schlüsseltresor hochgeladen ist, kann er dort nie gelesen werden. Er kann nur zum Signieren von Elementen verwendet werden, und der Zugriff auf den privaten Schlüssel wird durch deine Infrastrukturregeln bestimmt.
Alternativ kannst du den Schlüssel als Umgebungsvariable speichern. Dabei ist er nicht so stark geschützt wie beim Speichern in einem Schlüsseltresor. Wenn ein Angreifer Zugriff auf die Umgebung erhält, kann er den privaten Schlüssel lesen und die dauerhafte Authentifizierung als GitHub App erlangen.
Du solltest deinen privaten Schlüssel in deiner App auch dann nicht hart codieren, wenn dein Code in einem privaten Repository gespeichert ist.
Weitere Informationen findest du unter Best Practices beim Erstellen einer GitHub-App.