Skip to main content

Configuration de la signature de validation web

Vous pouvez activer la signature automatique des commits effectués dans l’interface web de GitHub Enterprise Server.

Qui peut utiliser cette fonctionnalité ?

Site administrators can configure web commit signing for votre instance GitHub Enterprise Server.

À propos de la signature de validation web

Si vous activez la signature de validation web, GitHub Enterprise Server utilise automatiquement GPG pour signer les validations que les utilisateurs effectuent sur l’interface web de votre instance GitHub Enterprise Server. Les validations signées par GitHub Enterprise Server ont un état vérifié. Pour plus d’informations, consultez « À propos de la vérification des signatures de commit ».

Vous pouvez activer la signature de validation web, faire pivoter la clé privée utilisée pour la signature de validation web et désactiver la signature de validation web.

Activation de la signature de validation web

  1. Dans l’interpréteur de commandes d’administration, créez une clé PGP. Notez l’adresse e-mail et l’ID de clé.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Utilisez le type de clé par défaut et au moins 4096 bits sans expiration.
    • Utilisez web-flow comme nom d’utilisateur. Si web-flow est indisponible ou inutilisable, utilisez un nouveau nom d’utilisateur unique. Utilisez ce nom d’utilisateur tout au long des étapes suivantes de cet article.
    • Si vous avez une adresse e-mail no-reply définie dans Management Console, utilisez cette adresse e-mail. Sinon, utilisez une adresse e-mail, comme web-flow@my-company.com. L’adresse e-mail n’a pas besoin d’être valide.
    • La clé PGP ne peut pas être protégée par une phrase secrète.
  2. Définissez la clé comme variable d’environnement pour GitHub Enterprise Server, en remplaçant <YOUR-KEY-ID> par l’ID de clé GPG.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Mettez à jour les paramètres du service de signature de commit de 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. Activez la signature de validation web.

    Bash
    ghe-config app.github.web-commit-signing-enabled true
    
  5. Créez un utilisateur sur votre instance GitHub Enterprise Server via l’authentification intégrée ou l’authentification externe. Pour plus d’informations, consultez « À propos de la gestion de l'identité et de l'accès ».

    • Le nom d’utilisateur doit être le même que celui que vous avez utilisé lors de la création de la clé PGP à l’étape 1 ci-dessus, par exemple web-flow.
    • L’adresse e-mail de l’utilisateur doit être la même que celle que vous avez utilisée pour la création de la clé PGP.
  6. Exécutez la commande suivante, en remplaçant KEY-ID par votre ID de clé PGP.

    Bash
    gpg --armor --export KEY-ID
    
  7. Copiez votre clé PGP en commençant par -----BEGIN PGP PUBLIC KEY BLOCK----- et en terminant par -----END PGP PUBLIC KEY BLOCK-----.

  8. Connectez-vous à GitHub Enterprise Server avec le compte d’utilisateur créé pour la signature de commit web, par exemple, web-flow.

  9. Ajoutez la clé PGP publique au profil de l’utilisateur. Pour plus d’informations, consultez « Ajout d’une clé GPG à votre compte GitHub ».

    Remarque : ne supprimez pas les autres clés publiques de la liste des clés GPG. Si une clé publique est supprimée, les validations signées avec la clé privée correspondante ne seront plus marquées comme vérifiées.

  10. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.

  11. Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.

  12. Dans la barre latérale «  Administrateur de site », cliquez sur Management Console .

  13. Dans la barre latérale « Paramètres », cliquez sur E-mail.

  14. Sous « Adresse e-mail no-reply », tapez la même adresse e-mail que celle que vous avez utilisée pour la création de la clé PGP.

    Remarque : Le champ « Adresse e-mail No-reply » s’affiche uniquement si vous avez activé l’e-mail pour votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « Configuration de la messagerie pour les notifications ».

    1. Sous la barre latérale « Paramètres », cliquez sur **Enregistrer les paramètres**.

    Remarque : l’enregistrement des paramètres dans la Management Console redémarre les services système, ce qui peut entraîner un temps d’arrêt visible pour l’utilisateur.

  15. Attendez la fin de l’exécution de la configuration.

Rotation de la clé privée utilisée pour la signature de validation web

  1. Dans l’interpréteur de commandes d’administration, créez une clé PGP. Notez l’adresse e-mail et l’ID de clé.

    Bash
    gpg --full-generate-key --pinentry-mode=loopback
    
    • Utilisez le type de clé par défaut et au moins 4096 bits sans expiration.
    • Utilisez le nom de l’utilisateur signant la validation web, par exemple web-flow.
    • Utilisez l’adresse e-mail no-reply définie dans Management Console, qui doit être identique à l’adresse e-mail de l’utilisateur signant la validation web, par exemple web-flow.
    • La clé PGP ne peut pas être protégée par une phrase secrète.
  2. Définissez la clé comme variable d’environnement pour GitHub Enterprise Server, en remplaçant <YOUR-KEY-ID> par l’ID de clé GPG.

    Bash
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
    
  3. Mettez à jour les paramètres du service de signature de commit de 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. Exécutez la commande suivante, en remplaçant KEY-ID par votre ID de clé PGP.

    Bash
    gpg --armor --export KEY-ID
    
  5. Copiez votre clé PGP en commençant par -----BEGIN PGP PUBLIC KEY BLOCK----- et en terminant par -----END PGP PUBLIC KEY BLOCK-----.

  6. Connectez-vous à GitHub Enterprise Server avec le compte d’utilisateur créé pour la signature de commit web, par exemple, web-flow.

  7. Ajoutez la clé PGP publique au profil de l’utilisateur. Pour plus d’informations, consultez « Ajout d’une clé GPG à votre compte GitHub ».

    Remarque : ne supprimez pas les autres clés publiques de la liste des clés GPG. Si une clé publique est supprimée, les validations signées avec la clé privée correspondante ne seront plus marquées comme vérifiées.

Désactivation de la signature de validation web

Vous pouvez désactiver la signature de validation web pour votre instance GitHub Enterprise Server.

  1. Dans l’interpréteur de commandes d’administration, exécutez la commande suivante.

    Bash
    ghe-config app.github.web-commit-signing-enabled false
    
  2. Appliquez la configuration.

    Bash
    ghe-config-apply