Skip to main content

Konfigurieren der Webcommitsignierung

Du kannst das automatische Signieren von Commits auf der Webbenutzeroberfläche von GitHub Enterprise Server aktivieren.

Wer kann dieses Feature verwenden?

Site administrators can configure web commit signing for Ihre GitHub Enterprise Server-Instance.

Informationen zur Webcommitsignierung

Wenn du die Webcommitsignierung aktivierst, verwendet GitHub Enterprise Server automatisch GPG zum Signieren von Commits, die Benutzer*innen auf der Webbenutzeroberfläche von Ihre GitHub Enterprise Server-Instance vornehmen. Die von GitHub Enterprise Server signierten Commits haben den Status „Verifiziert“. Weitere Informationen findest du unter Informationen zur Verifizierung einer Commit-Signatur.

Du kannst die Webcommitsignierung aktivieren, den für die Webcommitsignierung verwendeten privaten Schlüssel rotieren und die Webcommitsignierung deaktivieren.

Aktivieren der Webcommitsignierung

  1. Erstelle in der Verwaltungsshell einen PGP-Schlüssel. Notiere dir die E-Mail-Adresse und die Schlüssel-ID.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Verwende den Standardschlüsseltyp und mindestens 4096 Bits ohne Ablauf.
    • Verwende web-flow als Benutzernamen. Wenn web-flow nicht verfügbar oder nicht verwendbar ist, verwende einen neuen eindeutigen Benutzernamen. Verwende diesen Benutzernamen in den folgenden Schritten in diesem Artikel.
    • Wenn du eine No-Reply-E-Mail-Adresse in der Verwaltungskonsole definiert hast, verwende diese E-Mail-Adresse. Falls dies nicht der Fall ist, kannst du eine beliebige E-Mail-Adresse verwenden (z. B. web-flow@my-company.com). Die E-Mail-Adresse muss nicht gültig sein.
    • Der PGP-Schlüssel kann nicht durch eine Passphrase geschützt werden.
  2. Definiere den Schlüssel als Umgebungsvariable für GitHub Enterprise Server, und ersetze <YOUR-KEY-ID> durch die GPG-Schlüssel-ID.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Aktualisiere die Einstellungen für den Commitsignierungsdienst von 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. Aktiviere die Webcommitsignierung.

    Bash
    ghe-config app.github.web-commit-signing-enabled true
    
  5. Erstelle über die integrierte oder eine externe Authentifizierungsmethode einen neuen Benutzer auf Ihre GitHub Enterprise Server-Instance. Weitere Informationen findest du unter Informationen zur Identitäts- und Zugriffsverwaltung.

    • Der Benutzername muss derselbe sein, den du oben in Schritt 1 beim Erstellen des PGP-Schlüssels verwendet hast, z. B. web-flow.
    • Auch die E-Mail-Adresse des Benutzers muss dieselbe sein, die du beim Erstellen des PGP-Schlüssels verwendet hast.
  6. Führe den folgenden Befehl aus, wobei du KEY-ID durch deine PGP-Schlüssel-ID ersetzt.

    Bash
    gpg --armor --export KEY-ID
    
  7. Kopiere deinen PGP-Schlüssel, der mit -----BEGIN PGP PUBLIC KEY BLOCK----- beginnt und auf -----END PGP PUBLIC KEY BLOCK----- endet.

  8. Melde dich bei GitHub Enterprise Server als der Benutzer an, der für die Webcommitsignierung erstellt wurde, z. B. als web-flow.

  9. Füge dem Benutzerprofil den öffentlichen PGP-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines GPG-Schlüssels zu deinem GitHub-Konto.

    Note

    Entferne keine anderen öffentlichen Schlüssel aus der Liste der GPG-Schlüssel. Wenn ein öffentlicher Schlüssel gelöscht wird, werden alle mit dem entsprechenden privaten Schlüssel signierten Commits nicht mehr als überprüft gekennzeichnet.

  10. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.

  11. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.

  12. Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.

  13. Klicke auf der Randleiste unter „Einstellungen“ auf E-Mail.

  14. Gib unter „No-Reply-E-Mail-Adresse“ dieselbe E-Mail-Adresse ein, die du beim Erstellen des PGP-Schlüssels verwendet hast.

    Note

    Das Feld „No-reply email address“ wird nur dann angezeigt, wenn du die E-Mail-Adresse für Ihre GitHub Enterprise Server-Instance aktiviert hast. Weitere Informationen findest du unter E-Mail für Benachrichtigungen konfigurieren.

  15. Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.

    Note

    Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.

  16. Warten Sie auf den Abschluss der Konfigurationsausführung.

Rotieren des für die Webcommitsignierung verwendeten privaten Schlüssels

  1. Erstelle in der Verwaltungsshell einen PGP-Schlüssel. Notiere dir die E-Mail-Adresse und die Schlüssel-ID.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Verwende den Standardschlüsseltyp und mindestens 4096 Bits ohne Ablauf.
    • Verwende den Benutzernamen des signierenden Benutzers für den Webcommit, z. B. web-flow.
    • Verwende die in der Verwaltungskonsole definierte No-Reply-E-Mail-Adresse, die mit der E-Mail-Adresse des signierenden Benutzers für den Webcommit identisch sein sollte, z. B. web-flow.
    • Der PGP-Schlüssel kann nicht durch eine Passphrase geschützt werden.
  2. Definiere den Schlüssel als Umgebungsvariable für GitHub Enterprise Server, und ersetze <YOUR-KEY-ID> durch die GPG-Schlüssel-ID.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Aktualisiere die Einstellungen für den Commitsignierungsdienst von 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. Führe den folgenden Befehl aus, wobei du KEY-ID durch deine PGP-Schlüssel-ID ersetzt.

    Bash
    gpg --armor --export KEY-ID
    
  5. Kopiere deinen PGP-Schlüssel, der mit -----BEGIN PGP PUBLIC KEY BLOCK----- beginnt und auf -----END PGP PUBLIC KEY BLOCK----- endet.

  6. Melde dich bei GitHub Enterprise Server als der Benutzer an, der für die Webcommitsignierung erstellt wurde, z. B. als web-flow.

  7. Füge dem Benutzerprofil den öffentlichen PGP-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines GPG-Schlüssels zu deinem GitHub-Konto.

    Note

    Entferne keine anderen öffentlichen Schlüssel aus der Liste der GPG-Schlüssel. Wenn ein öffentlicher Schlüssel gelöscht wird, werden alle mit dem entsprechenden privaten Schlüssel signierten Commits nicht mehr als überprüft gekennzeichnet.

Deaktivieren der Webcommitsignierung

Du kannst die Webcommitsignierung für Ihre GitHub Enterprise Server-Instance deaktivieren.

  1. Führe in der Verwaltungsshell den folgenden Befehl aus.

    Bash
    ghe-config app.github.web-commit-signing-enabled false
    
  2. Wende die Konfiguration an.

    Bash
    ghe-config-apply