6.8. RPM パッケージへの署名
RPM パッケージに署名することで、第三者がその内容を改変できないようにします。
以下のいずれかのソフトウェアを使用して、RPM パッケージに署名できます。
- Sequoia PGP は OpenPGP 標準をサポートしています。RPM はソフトウェア署名の検証にも Sequoia PGP を使用します。
- GNU Privacy Guard (GnuPG) は古い OpenPGP 標準バージョンをサポートしています。そのため、GnuPG は RHEL 9 以前のバージョンとの互換性に優れています。
RHEL バージョン 10.1 以降では、OpenPGPv6 および RPMv6 署名がサポートされています。これらの署名は、以前のバージョンの RHEL とは互換性がありません。以前のバージョンの RPM はこれらの署名を無視します。パッケージに RPMv4 署名が含まれている場合、RPM は代わりにその署名を使用します。
ただし、RHEL 9.7 以降の RHEL 9 バージョンでは、multisig DNF プラグインを使用して OpenPGPv6 および RPMv6 署名のサポートを有効にできます。
6.8.1. GnuPG を使用した RPM パッケージへの署名 リンクのコピーリンクがクリップボードにコピーされました!
GNU Privacy Guard (GnuPG) を使用して RPM パッケージに署名することで、第三者がパッケージの内容を改変できないようにします。
6.8.1.1. GnuPG を使用してパッケージに署名するための OpenPGP 鍵の作成 リンクのコピーリンクがクリップボードにコピーされました!
GNU Privacy Guard (GnuPG) ソフトウェアを使用して RPM パッケージに署名するには、まず OpenPGP キーを作成する必要があります。
前提条件
-
システムに
rpm-signおよびpinentryパッケージがインストールされている。
手順
OpenPGP 鍵ペアを生成します。
$ gpg --gen-key生成された鍵ペアを確認します。
$ gpg --list-keys公開鍵をエクスポートします。
$ gpg --export -a '<public_key_name>' > RPM-GPG-KEY-pmanager
6.8.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>GnuPG の有効な鍵 ID 値は、鍵のフィンガープリント、フルネーム、または鍵の作成時に指定したメールアドレスです。
6.8.1.3. RPM パッケージへの署名の追加 リンクのコピーリンクがクリップボードにコピーされました!
パッケージは通常、署名なしでビルドします。パッケージのリリース前に第三者がコンテンツを改ざんできないように、パッケージに署名を追加します。
前提条件
- GnuPG 用の OpenPGP 鍵を作成した。詳細は、GnuPG を使用してパッケージに署名するための OpenPGP 鍵の作成 を参照してください。
- パッケージに署名するように RPM を設定した。詳細は、GnuPG を使用してパッケージに署名するための RPM の設定 を参照してください。
-
システムに
rpm-signパッケージがインストールされている。
手順
パッケージに署名を追加します。
$ rpmsign --addsign <package-name>.rpm
検証
エクスポートした OpenPGP 公開鍵 を RPM キーリングにインポートします。
# rpmkeys --import RPM-GPG-KEY-pmanagerGnuPG で鍵 ID を表示します。
$ gpg --list-keys[...] pub rsa3072 2025-05-13 [SC] [expires: 2028-05-12] A8AF1C39AC67A1501450734F6DE8FC866DE0394D [...]鍵 ID は、コマンド出力の 40 文字の文字列です (例:
A8AF1C39AC67A1501450734F6DE8FC866DE0394D)。RPM ファイルに対応する署名があることを確認します。
$ rpm -Kv <package_name>.rpm<package_name>.rpm: Header V4 RSA/SHA256 Signature, key ID 6de0394d: OK Header SHA256 digest: OK Header SHA1 digest: OK Payload SHA256 digest: OK MD5 digest: OK署名の鍵 ID は、OpenPGP の鍵 ID の末尾と一致します。