Skip to main content

Web コミット署名を構成する

GitHub Enterprise Server の Web インターフェイスで行われるコミットの自動署名を有効にすることができます。

Who can use this feature

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

Web コミット署名について

Web コミット署名を有効にした場合、GitHub Enterprise Server は、ユーザーが your GitHub Enterprise Server instance の Web インターフェイスで行ったコミットに、GPG を使って自動的に署名します。 GitHub Enterprise Server によって署名されたコミットは、確認済みの状態になります。 詳細については、「コミット署名の検証について」を参照してください。

Web コミット署名を有効にし、Web コミット署名に使われる秘密キーをローテーションして、Web コミット署名を無効にすることができます。

Web コミット署名を有効にする

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

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • 既定のキーの種類と、有効期限のない少なくとも 4096 ビットを使用します。

    • ユーザー名として web-flow を使用します。

    • [Management Console] で定義された no-reply メール アドレスがある場合は、そのメール アドレスを使います。 ない場合は、web-flow@my-company.com のような任意のメール アドレスを使います。 メール アドレスは有効である必要はありません。

    • 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}')"
      ``` 1. 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
  2. Web コミット署名を有効にします。

    Shell
    ghe-config app.github.web-commit-signing-enabled true
  3. 構成を適用した後、構成の実行が終わるまで待ちます。

    Shell
    ghe-config-apply
  4. 組み込みの認証または外部認証を使って、your GitHub Enterprise Server instance で新しいユーザーを作成します。 詳しくは、「Enterprise の認証について」をご覧ください。

    • ユーザーのユーザー名は、web-flow でなければなりません。
    • ユーザーのメール アドレスは、PGP キーに使ったものと同じアドレスでなければなりません。 1. KEY-ID を PGP キー ID に置き換えて、次のコマンドを実行します。
    Shell
    gpg --armor --export KEY-ID
  5. -----BEGIN PGP PUBLIC KEY BLOCK----- で始まり、-----END PGP PUBLIC KEY BLOCK----- で終わる PGP キーをコピーします。

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

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

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

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

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

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

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

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

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

  11. [no-reply メール アドレス] に、PGP キーに使ったものと同じメール アドレスを入力します。

    注: [no-reply メール アドレス] フィールドは、your GitHub Enterprise Server instance のメールを有効にしてある場合にのみ表示されます。 詳しくは、「通知のためのメール設定」をご覧ください。

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

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

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

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

    インスタンスの設定

Web コミット署名に使用される秘密キーをローテーションする

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

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • 既定のキーの種類と、有効期限のない少なくとも 4096 ビットを使用します。

    • ユーザー名として web-flow を使用します。

    • [Management Console] で定義されている no-reply メール アドレスを使います。これは、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}')"
      ``` 1. 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
    ``` 1. KEY-ID を PGP キー ID に置き換えて、次のコマンドを実行します。
    
    ```bash{:copy}
    gpg --armor --export KEY-ID
  2. -----BEGIN PGP PUBLIC KEY BLOCK----- で始まり、-----END PGP PUBLIC KEY BLOCK----- で終わる PGP キーをコピーします。

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

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

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

Web コミット署名を無効にする

your GitHub Enterprise Server instance の Web コミット署名を無効にすることができます。

  1. 管理シェルで、次のコマンドを実行します。

    Shell
    ghe-config app.github.web-commit-signing-enabled false
  2. 構成を適用します。

    Shell
    ghe-config-apply