4.9. RPM パッケージへの署名
次のいずれかのソフトウェアを使用して RPM パッケージに署名すると、第三者によるコンテンツの変更を防止できます。
- Sequoia PGP は OpenPGP 標準をサポートしています。RPM はソフトウェア署名の検証にも Sequoia PGP を使用します。
- GNU Privacy Guard (GnuPG) は古い OpenPGP 標準バージョンをサポートしています。そのため、GnuPG は RHEL 9 以前のバージョンとの互換性に優れています。
新しいアルゴリズムと署名は、以前の RHEL バージョンと互換性がない可能性があります。
4.9.1. GnuPG を使用した RPM パッケージへの署名 リンクのコピーリンクがクリップボードにコピーされました!
GNU Privacy Guard (GnuPG) ソフトウェアを使用して RPM パッケージに署名できます。
4.9.1.1. GnuPG を使用してパッケージに署名するための OpenPGP 鍵の作成 リンクのコピーリンクがクリップボードにコピーされました!
GNU Privacy Guard (GnuPG) ソフトウェアを使用して RPM パッケージに署名するには、まず OpenPGP 鍵を作成する必要があります。
前提条件
-
システムに
rpm-sign
およびpinentry
パッケージがインストールされている。
手順
OpenPGP 鍵ペアを生成します。
gpg --gen-key
$ gpg --gen-key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された鍵ペアを確認します。
gpg --list-keys
$ gpg --list-keys
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 公開鍵をエクスポートします。
gpg --export -a '<public_key_name>' > RPM-GPG-KEY-pmanager
$ gpg --export -a '<public_key_name>' > RPM-GPG-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.9.1.2. GnuPG を使用してパッケージに署名するための RPM の設定 リンクのコピーリンクがクリップボードにコピーされました!
GNU Privacy Guard (GnuPG) ソフトウェアを使用して RPM パッケージに署名するには、%_gpg_name
RPM マクロを指定して RPM を設定する必要があります。
前提条件
- GnuPG 用の OpenPGP 鍵を作成した。詳細は、GnuPG を使用してパッケージに署名するための OpenPGP 鍵の作成 を参照してください。
手順
$HOME/.rpmmacros
ディレクトリーで%_gpg_name
マクロを定義します。%_gpg_name <key-ID>
%_gpg_name <key-ID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GnuPG の有効な鍵 ID 値は、鍵のフィンガープリント、フルネーム、または鍵の作成時に指定したメールアドレスです。
4.9.1.3. RPM パッケージへの署名の追加 リンクのコピーリンクがクリップボードにコピーされました!
パッケージは通常、署名なしでビルドします。パッケージをリリースする前に署名を追加できます。
前提条件
- GnuPG 用の OpenPGP 鍵を作成した。詳細は、GnuPG を使用してパッケージに署名するための OpenPGP 鍵の作成 を参照してください。
- パッケージに署名するように RPM を設定した。詳細は、GnuPG を使用してパッケージに署名するための RPM の設定 を参照してください。
-
システムに
rpm-sign
パッケージがインストールされている。
手順
パッケージに署名を追加します。
rpmsign --addsign <package-name>.rpm
$ rpmsign --addsign <package-name>.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
エクスポートした OpenPGP 公開鍵 を RPM キーリングにインポートします。
rpmkeys --import RPM-GPG-KEY-pmanager
# rpmkeys --import RPM-GPG-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GnuPG で鍵 ID を表示します。
gpg --list-keys
$ gpg --list-keys [...] pub rsa3072 2025-05-13 [SC] [expires: 2028-05-12] A8AF1C39AC67A1501450734F6DE8FC866DE0394D [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 鍵 ID は、コマンド出力の 40 文字の文字列です (例:
A8AF1C39AC67A1501450734F6DE8FC866DE0394D
)。RPM ファイルに対応する署名があることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 署名の鍵 ID は、OpenPGP の鍵 ID の末尾と一致します。
4.9.2. Sequoia PGP を使用した RPM パッケージへの署名 リンクのコピーリンクがクリップボードにコピーされました!
Sequoia PGP を使用して RPM パッケージに署名し、第三者によるコンテンツの変更を防止できます。
4.9.2.1. Sequoia PGP を使用してパッケージに署名するための OpenPGP 鍵の作成 リンクのコピーリンクがクリップボードにコピーされました!
Sequoia PGP ソフトウェアを使用してパッケージに署名するには、まず OpenPGP 鍵を作成する必要があります。
手順
Sequoia PGP ツールをインストールします。
dnf install sequoia-sq
# dnf install sequoia-sq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenPGP 鍵ペアを生成します。
sq key generate --own-key --userid <key_name>
$ sq key generate --own-key --userid <key_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された鍵ペアを確認します。
sq key list
$ sq key list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 公開鍵をエクスポートします。
sq cert export --cert-userid '<key_name>' > RPM-PGP-KEY-pmanager
$ sq cert export --cert-userid '<key_name>' > RPM-PGP-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.9.2.2. Sequoia PGP を使用してパッケージに署名するための RPM の設定 リンクのコピーリンクがクリップボードにコピーされました!
Sequoia PGP ソフトウェアを使用して RPM パッケージに署名するには、Sequoia PGP を使用するように RPM を設定し、%_gpg_name
マクロを指定する必要があります。
前提条件
-
システムに
rpm-sign
パッケージがインストールされている。
手順
macros.rpmsign-sequoia
ファイルを/etc/rpm
ディレクトリーにコピーします。cp /usr/share/doc/rpm/macros.rpmsign-sequoia /etc/rpm/
# cp /usr/share/doc/rpm/macros.rpmsign-sequoia /etc/rpm/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 鍵リストの出力から有効な OpenPGP 鍵のフィンガープリント値を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 鍵のフィンガープリントは、出力の最初の行にある 40 文字の文字列です (例:
7E4B52101EB3DB08967A1E5EB595D12FDA65BA50
)。次のように、
$HOME/.rpmmacros
ファイルで%_gpg_name
マクロを定義します。%_gpg_name <key_fingerprint>
%_gpg_name <key_fingerprint>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow フィンガープリントの代わりに完全な鍵 ID を使用することもできます。
注記GnuPG とは異なり、Sequoia PGP では完全な鍵 ID またはフィンガープリントしか使用できません。
4.9.2.3. RPM パッケージへの署名の追加 リンクのコピーリンクがクリップボードにコピーされました!
パッケージは通常、署名なしでビルドします。パッケージをリリースする前に署名を追加できます。
前提条件
- OpenPGP 鍵を作成した。詳細は、Sequoia PGP を使用してパッケージに署名するための OpenPGP 鍵の作成 を参照してください。
- パッケージに署名するように RPM を設定した。詳細は、Sequoia PGP を使用してパッケージに署名するための RPM の設定 を参照してください。
-
システムに
rpm-sign
パッケージがインストールされている。
手順
パッケージに署名を追加します。
rpmsign --addsign <package-name>.rpm
$ rpmsign --addsign <package-name>.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
エクスポートした OpenPGP 公開鍵 を RPM キーリングにインポートします。
rpmkeys --import RPM-PGP-KEY-pmanager
# rpmkeys --import RPM-PGP-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 署名鍵のフィンガープリントを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 鍵のフィンガープリントは、通常
sq key list --cert-userid <key_name>
コマンド出力内の署名サブキーです (例:E0BD231AB350AD6802D44C0A270E79FFC39C3B25
)。RPM ファイルに対応する署名があることを確認します。次に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 署名の鍵 ID は、鍵のフィンガープリントの末尾と一致します。