Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2023-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

コミット署名の検証について

GPGまたは S/MIME を使用すると、タグに署名し、ローカルでコミットできます。 これらのタグやコミットは GitHub Enterprise Server で検証済みとしてマークされているため、他のユーザーはその変更が信頼できるソースからのものであると確信できます。

コミット署名の検証について

コミットとタグにローカルで署名して、行った変更の根拠を他のユーザに信頼してもらうことができます。 コミットまたはタグに暗号で検証可能な GPGまたは S/MIME 署名がある場合、GitHub Enterprise Server はコミットまたはタグに [検証済み] のマークを付けます。

リポジトリのコミット リスト内のコミットのスクリーンショット。 [検証済み] がオレンジ色の枠線で強調表示されています。

コミットまたはタグに検証できない署名が含まれている場合、GitHub Enterprise Server ではそのコミットまたはタグを [未検証] としてマークします。

リベースとマージの署名の検証

pull request で Rebase と Merge オプションを使用する場合は、ヘッド ブランチのコミットがコミット署名の検証なしでベース ブランチに追加されることに注意することが重要です。 このオプションを使用すると、元のコミットのデータとコンテンツを使用して、GitHub によって変更されたコミットが作成されます。 つまり、GitHub は、このコミットを本当に作成していないため、汎用システム ユーザーとして署名することはできません。 GitHub では、コミッターの秘密署名キーにアクセスできないため、ユーザーの代わりにコミットに署名できません。

これを回避するには、ローカルでリベースとマージを行い、変更を pull request のベース ブランチにプッシュします。

詳しくは、「GitHub上のマージ方法について」を参照してください。

リポジトリ管理者は、ブランチでコミット署名を必須として、署名および検証されていないすべてのコミットをブロックできます。 詳しくは、「保護されたブランチについて」を参照してください。

GitHub Enterprise Server上の署名されたコミットあるいはタグの検証ステータスをチェックして、コミットの署名が検証されない理由を見ることができます。 詳しくは、「コミットおよびタグの署名の検証ステータスを確認する」を参照してください。

サイト管理者が Web コミット署名を有効にしている場合、GitHub Enterprise Server は GPG を自動的に使用して、Web インターフェイスで行ったコミットに署名します。 GitHub Enterprise Server によって署名されたコミットは、確認済みの状態になります。 https://HOSTNAME/web-flow.gpg で入手可能な公開キーを使用して、署名をローカルで確認できます。 詳しくは、「Web コミット署名を構成する」を参照してください。

GPG コミット署名の検証

自分で生成した GPG キーで、GPG を使ってコミットに署名できます。

GitHub Enterprise Server では、OpenPGP ライブラリを使用することで、ローカルで署名されたコミットとタグが、お使いの GitHub Enterprise Server インスタンス でアカウントに追加した公開鍵に対して暗号化で検証可能であることを確認します。

GPG を使ってコミットに署名し、それらのコミットを GitHub Enterprise Server 上で検証済みにするには、以下の手順に従ってください:

  1. 既存の GPG キーがあるかチェックする
  2. 新しい GPG キーを生成する
  3. GitHub アカウントに GPG キーを追加する
  4. Git へ署名キーを伝える
  5. コミットに署名する
  6. タグに署名する

S/MIME コミット署名の検証

S/MIME を使い、自分の Organization で発行した X.509 キーを用いてコミットに署名できます。

GitHub Enterprise Server では、Mozilla ブラウザーで使用されているのと同じ信頼ストアである Debian ca-certificates パッケージを使用して、ローカル署名されたコミットとタグが信頼されたルート証明書の公開キーに対して暗号化で検証可能であることを確認します。

注: S/MIME 署名の検証は、Git 2.19 以降で利用できます。 git の最新バージョンを入手するには、Git の Web サイトを参照してください。

S/MIME を使ってコミットに署名し、それらのコミットを GitHub Enterprise Server 上で検証済みにするには、以下の手順に従ってください:

  1. Git へ署名キーを伝える
  2. コミットに署名する
  3. タグに署名する

公開鍵を GitHub Enterprise Serverにアップロードする必要はありません。

参考資料