Skip to main content

Configuring web commit signing

You can enable auto-signing of commits made in the web interface of GitHub Enterprise Server.

Who can use this feature

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

About web commit signing

If you enable web commit signing, GitHub Enterprise Server will automatically use GPG to sign commits users make on the web interface of your GitHub Enterprise Server instance. Commits signed by GitHub Enterprise Server will have a verified status. For more information, see "About commit signature verification."

You can enable web commit signing, rotate the private key used for web commit signing, and disable web commit signing.

Enabling web commit signing

  1. 管理シェルで、PGP キーを作成します。 メール アドレスとキー ID をメモしておきます。

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • 既定のキーの種類と、有効期限のない少なくとも 4096 ビットを使用します。
    • ユーザー名として web-flow を使用します。
    • Use web-flow as the username. If web-flow is unavailable or unusable, use any new unique username. Use this username throughout the following steps in this article.
    • If you have a no-reply email address defined in the [Management Console], use that email address. If not, use any email address, such as web-flow@my-company.com. The email address does not need to be valid.
  • PGP キーはパスフレーズで保護 できません
  1. <YOUR-KEY-ID> を GPG キー ID に置き換えて、GitHub Enterprise Server の環境変数としてキーを定義します。

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
  2. GitHub Enterprise Server のコミット署名サービスの設定を更新します。

    Shell
    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
  3. Enable web commit signing.

    Shell
    ghe-config app.github.web-commit-signing-enabled true
  4. Apply the configuration, then wait for the configuration run to complete.

    Shell
    ghe-config-apply
  5. Create a new user on your GitHub Enterprise Server instance via built-in authentication or external authentication. For more information, see "About authentication for your enterprise."

    • The user's username must be the same username you used when creating the PGP key in step 1 above, for example, web-flow.
    • The user's email address must be the same address you used when creating the PGP key.
  6. KEY-ID を PGP キー ID に置き換えて、次のコマンドを実行します。

    Shell
    gpg --armor --export KEY-ID
  7. -----BEGIN PGP PUBLIC KEY BLOCK----- で始まり、-----END PGP PUBLIC KEY BLOCK----- で終わる PGP キーをコピーします。

  8. web-flow ユーザーとして GitHub Enterprise Server にサインインします。

  9. ユーザーのプロファイルに公開 PGP キーを追加します。 詳しい情報については、「GitHub アカウントに GPG キーを追加する」を参照してください。

    注: GPG キーのリストから他の公開キーを削除しないでください。 公開キーが削除されると、対応する秘密キーで署名されたコミットは検証済みとしてマークされなくなります。

  10. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。

    サイト管理者設定にアクセスするための宇宙船アイコンのスクリーンショット

  11. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

    [サイト管理者] リンクのスクリーンショット 1. 左側のサイドバーで、 [Management Console] をクリックします。 左側のサイドバーの [[Management Console]] タブ

  12. ページの上部にある [設定] をクリックします。 Settings tab

  13. 左サイドバーで、 [メール] をクリックします メール タブ

  14. Under "No-reply email address", type the same email address you used when creating the PGP key.

    Note: The "No-reply email address" field will only be displayed if you've enabled email for your GitHub Enterprise Server instance. For more information, see "Configuring email for notifications."

  15. 左側のサイドバーで、 [設定の保存] をクリックします。

    [Management Console] の [設定の保存] ボタンのスクリーンショット

    注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。

  16. 設定の実行が完了するのを待ってください。

    インスタンスの設定

Rotating the private key used for web commit signing

  1. 管理シェルで、PGP キーを作成します。 メール アドレスとキー ID をメモしておきます。

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • 既定のキーの種類と、有効期限のない少なくとも 4096 ビットを使用します。
    • ユーザー名として web-flow を使用します。
    • Use the web commit signing user's username, for example, web-flow.
    • Use the no-reply email address defined in the [Management Console], which should be the same as the email address of the web commit signing user, for example, web-flow.
  • PGP キーはパスフレーズで保護 できません
  1. <YOUR-KEY-ID> を GPG キー ID に置き換えて、GitHub Enterprise Server の環境変数としてキーを定義します。

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
  2. GitHub Enterprise Server のコミット署名サービスの設定を更新します。

    Shell
    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
  3. KEY-ID を PGP キー ID に置き換えて、次のコマンドを実行します。

    Shell
    gpg --armor --export KEY-ID
  4. -----BEGIN PGP PUBLIC KEY BLOCK----- で始まり、-----END PGP PUBLIC KEY BLOCK----- で終わる PGP キーをコピーします。

  5. web-flow ユーザーとして GitHub Enterprise Server にサインインします。

  6. ユーザーのプロファイルに公開 PGP キーを追加します。 詳しい情報については、「GitHub アカウントに GPG キーを追加する」を参照してください。

    注: GPG キーのリストから他の公開キーを削除しないでください。 公開キーが削除されると、対応する秘密キーで署名されたコミットは検証済みとしてマークされなくなります。

Disabling web commit signing

You can disable web commit signing for your GitHub Enterprise Server instance.

  1. In the administrative shell, run the following command.

    Shell
    ghe-config app.github.web-commit-signing-enabled false
  2. Apply the configuration.

    Shell
    ghe-config-apply