Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

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 deine GitHub Enterprise Server-Instanz.

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 deine GitHub Enterprise Server-Instanz 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.

    Shell
    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. 1. Definiere den Schlüssel als Umgebungsvariable für GitHub Enterprise Server, und ersetze <YOUR-KEY-ID> durch die GPG-Schlüssel-ID.

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

    Shell
    ghe-config app.github.web-commit-signing-enabled true
  2. Wende die Konfiguration an, und warte dann, bis die Konfigurationsausführung abgeschlossen ist.

    Shell
    ghe-config-apply
  3. Erstelle über die integrierte oder eine externe Authentifizierungsmethode einen neuen Benutzer auf deine GitHub Enterprise Server-Instanz. Weitere Informationen findest du unter Informationen zur Authentifizierung für dein Unternehmen.

    • 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. 1. Führe den folgenden Befehl aus, wobei du KEY-ID durch deine PGP-Schlüssel-ID ersetzt.
    Shell
    gpg --armor --export KEY-ID
  4. Kopiere deinen PGP-Schlüssel, der mit -----BEGIN PGP PUBLIC KEY BLOCK----- beginnt und auf -----END PGP PUBLIC KEY BLOCK----- endet.

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

  6. 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.

    Hinweis: 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.

    1. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
  7. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator. 1. Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.

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

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

    Hinweis: Das Feld „No-Reply-E-Mail-Adresse“ wird nur angezeigt, wenn du eine E-Mail-Adresse für deine GitHub Enterprise Server-Instanz aktiviert hast. Weitere Informationen findest du unter Configuring email for notifications.

    1. Klicke auf der Randleiste unter „Einstellungen“ auf **Einstellungen speichern**.

    Hinweis: 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.

  10. 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.

    Shell
    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. 1. Definiere den Schlüssel als Umgebungsvariable für GitHub Enterprise Server, und ersetze <YOUR-KEY-ID> durch die GPG-Schlüssel-ID.

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    ``` 1. Aktualisiere die Einstellungen für den Commitsignierungsdienst von GitHub Enterprise Server.
    
    ```bash{:copy}
    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
    ``` 1. Führe den folgenden Befehl aus, wobei du KEY-ID durch deine PGP-Schlüssel-ID ersetzt.
    
    ```bash{:copy}
    gpg --armor --export KEY-ID
  1. Kopiere deinen PGP-Schlüssel, der mit -----BEGIN PGP PUBLIC KEY BLOCK----- beginnt und auf -----END PGP PUBLIC KEY BLOCK----- endet.

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

  3. 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.

    Hinweis: 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 deine GitHub Enterprise Server-Instanz deaktivieren.

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

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

    Shell
    ghe-config-apply