Web コミット署名について
Web コミット署名を有効にした場合、GitHub Enterprise Server は、ユーザーが の Web インターフェイスで行ったコミットに、GPG を使って自動的に署名します。 GitHub Enterprise Server によって署名されたコミットは、確認済みの状態になります。 詳細については、「コミット署名の検証について」を参照してください。
Web コミット署名を有効にし、Web コミット署名に使われる秘密キーをローテーションして、Web コミット署名を無効にすることができます。
Web コミット署名を有効にする
-
管理シェルで、PGP キーを作成します。 メール アドレスとキー ID をメモしておきます。
Shell gpg --full-generate-key --pinentry-mode=loopback
- 既定のキーの種類と、有効期限のない少なくとも
4096
ビットを使用します。 - 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 のコミット署名サービスの設定を更新します。 ```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
-
Web コミット署名を有効にします。
Shell ghe-config app.github.web-commit-signing-enabled true
-
構成を適用した後、構成の実行が終わるまで待ちます。
Shell ghe-config-apply
-
組み込みの認証または外部認証を使って、 で新しいユーザーを作成します。 詳しくは、「Enterprise の認証について」をご覧ください。
- ユーザーのユーザー名は、
web-flow
でなければなりません。 - ユーザーのメール アドレスは、PGP キーに使ったものと同じアドレスでなければなりません。 1. KEY-ID を PGP キー ID に置き換えて、次のコマンドを実行します。
Shell gpg --armor --export KEY-ID
- ユーザーのユーザー名は、
-
-----BEGIN PGP PUBLIC KEY BLOCK-----
で始まり、-----END PGP PUBLIC KEY BLOCK-----
で終わる PGP キーをコピーします。 -
Web コミット署名用に作成したユーザー (例:
web-flow
) として GitHub Enterprise Server にサインインします。 -
ユーザーのプロファイルに公開 PGP キーを追加します。 詳しい情報については、「GitHub アカウントに GPG キーを追加する」を参照してください。
注: GPG キーのリストから他の公開キーを削除しないでください。 公開キーが削除されると、対応する秘密キーで署名されたコミットは検証済みとしてマークされなくなります。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
1. 左側のサイドバーで、 Management Console をクリックします。
-
ページの上部にある [設定] をクリックします。
-
左サイドバーで、 [メール] をクリックします
-
[no-reply メール アドレス] に、PGP キーに使ったものと同じメール アドレスを入力します。
注: [no-reply メール アドレス] フィールドは、 のメールを有効にしてある場合にのみ表示されます。 詳しくは、「通知のためのメール設定」をご覧ください。
注: Management Console に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
Web コミット署名に使用される秘密キーをローテーションする
-
管理シェルで、PGP キーを作成します。 メール アドレスとキー ID をメモしておきます。
Shell gpg --full-generate-key --pinentry-mode=loopback
- 既定のキーの種類と、有効期限のない少なくとも
4096
ビットを使用します。 - 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 のコミット署名サービスの設定を更新します。 ```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. KEY-ID を PGP キー ID に置き換えて、次のコマンドを実行します。 ```bash{:copy} gpg --armor --export KEY-ID
-
-----BEGIN PGP PUBLIC KEY BLOCK-----
で始まり、-----END PGP PUBLIC KEY BLOCK-----
で終わる PGP キーをコピーします。 -
Web コミット署名用に作成したユーザー (例:
web-flow
) として GitHub Enterprise Server にサインインします。 -
ユーザーのプロファイルに公開 PGP キーを追加します。 詳しい情報については、「GitHub アカウントに GPG キーを追加する」を参照してください。
注: GPG キーのリストから他の公開キーを削除しないでください。 公開キーが削除されると、対応する秘密キーで署名されたコミットは検証済みとしてマークされなくなります。
Web コミット署名を無効にする
の Web コミット署名を無効にすることができます。
-
管理シェルで、次のコマンドを実行します。
Shell ghe-config app.github.web-commit-signing-enabled false
-
構成を適用します。
Shell ghe-config-apply