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 パッケージがインストールされている。

手順

  1. OpenPGP 鍵ペアを生成します。

    $ gpg --gen-key
    Copy to Clipboard Toggle word wrap
  2. 生成された鍵ペアを確認します。

    $ gpg --list-keys
    Copy to Clipboard Toggle word wrap
  3. 公開鍵をエクスポートします。

    $ gpg --export -a '<public_key_name>' > RPM-GPG-KEY-pmanager
    Copy to Clipboard Toggle word wrap

4.9.1.2. GnuPG を使用してパッケージに署名するための RPM の設定

GNU Privacy Guard (GnuPG) ソフトウェアを使用して RPM パッケージに署名するには、%_gpg_name RPM マクロを指定して RPM を設定する必要があります。

前提条件

手順

  • $HOME/.rpmmacros ディレクトリーで %_gpg_name マクロを定義します。

    %_gpg_name <key-ID>
    Copy to Clipboard Toggle word wrap

    GnuPG の有効な鍵 ID 値は、鍵のフィンガープリント、フルネーム、または鍵の作成時に指定したメールアドレスです。

4.9.1.3. RPM パッケージへの署名の追加

パッケージは通常、署名なしでビルドします。パッケージをリリースする前に署名を追加できます。

前提条件

手順

  • パッケージに署名を追加します。

    $ rpmsign --addsign <package-name>.rpm
    Copy to Clipboard Toggle word wrap

検証

  1. エクスポートした OpenPGP 公開鍵 を RPM キーリングにインポートします。

    # rpmkeys --import RPM-GPG-KEY-pmanager
    Copy to Clipboard Toggle word wrap
  2. GnuPG で鍵 ID を表示します。

    $ gpg --list-keys
    [...]
    pub   rsa3072 2025-05-13 [SC] [expires: 2028-05-12]
          A8AF1C39AC67A1501450734F6DE8FC866DE0394D
    [...]
    Copy to Clipboard Toggle word wrap

    鍵 ID は、コマンド出力の 40 文字の文字列です (例: A8AF1C39AC67A1501450734F6DE8FC866DE0394D)。

  3. 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
    Copy to Clipboard Toggle word wrap

    署名の鍵 ID は、OpenPGP の鍵 ID の末尾と一致します。

4.9.2. Sequoia PGP を使用した RPM パッケージへの署名

Sequoia PGP を使用して RPM パッケージに署名し、第三者によるコンテンツの変更を防止できます。

4.9.2.1. Sequoia PGP を使用してパッケージに署名するための OpenPGP 鍵の作成

Sequoia PGP ソフトウェアを使用してパッケージに署名するには、まず OpenPGP 鍵を作成する必要があります。

手順

  1. Sequoia PGP ツールをインストールします。

    # dnf install sequoia-sq
    Copy to Clipboard Toggle word wrap
  2. OpenPGP 鍵ペアを生成します。

    $ sq key generate --own-key --userid <key_name>
    Copy to Clipboard Toggle word wrap
  3. 生成された鍵ペアを確認します。

    $ sq key list
    Copy to Clipboard Toggle word wrap
  4. 公開鍵をエクスポートします。

    $ sq cert export --cert-userid '<key_name>' > RPM-PGP-KEY-pmanager
    Copy to Clipboard Toggle word wrap

4.9.2.2. Sequoia PGP を使用してパッケージに署名するための RPM の設定

Sequoia PGP ソフトウェアを使用して RPM パッケージに署名するには、Sequoia PGP を使用するように RPM を設定し、%_gpg_name マクロを指定する必要があります。

前提条件

  • システムに rpm-sign パッケージがインストールされている。

手順

  1. macros.rpmsign-sequoia ファイルを /etc/rpm ディレクトリーにコピーします。

    # cp /usr/share/doc/rpm/macros.rpmsign-sequoia /etc/rpm/
    Copy to Clipboard Toggle word wrap
  2. 鍵リストの出力から有効な OpenPGP 鍵のフィンガープリント値を取得します。

    $ sq cert list --cert-userid '<key_name>'
     - 7E4B52101EB3DB08967A1E5EB595D12FDA65BA50
       - created 2025-05-13 10:33:29 UTC
       - will expire 2028-05-13T03:59:50Z
    
       - [    ✓    ] <key_name>
    Copy to Clipboard Toggle word wrap

    鍵のフィンガープリントは、出力の最初の行にある 40 文字の文字列です (例: 7E4B52101EB3DB08967A1E5EB595D12FDA65BA50)。

  3. 次のように、$HOME/.rpmmacros ファイルで %_gpg_name マクロを定義します。

    %_gpg_name <key_fingerprint>
    Copy to Clipboard Toggle word wrap

    フィンガープリントの代わりに完全な鍵 ID を使用することもできます。

    注記

    GnuPG とは異なり、Sequoia PGP では完全な鍵 ID またはフィンガープリントしか使用できません。

4.9.2.3. RPM パッケージへの署名の追加

パッケージは通常、署名なしでビルドします。パッケージをリリースする前に署名を追加できます。

前提条件

手順

  • パッケージに署名を追加します。

    $ rpmsign --addsign <package-name>.rpm
    Copy to Clipboard Toggle word wrap

検証

  1. エクスポートした OpenPGP 公開鍵 を RPM キーリングにインポートします。

    # rpmkeys --import RPM-PGP-KEY-pmanager
    Copy to Clipboard Toggle word wrap
  2. 署名鍵のフィンガープリントを表示します。

    $ sq key list --cert-userid <key_name>
     - 7E4B52101EB3DB08967A1E5EB595D12FDA65BA50
       - user ID: <key_name> (authenticated)
       - created 2025-05-13 10:33:29 UTC
       - will expire 2028-05-13T03:59:50Z
       - usable for signing
       - @softkeys/7E4B52101EB3DB08967A1E5EB595D12FDA65BA50: available, unlocked
    
       - 78E56DD2E12E02CFEEA27F8B9FE57972D6BCEA6F
         - created 2025-05-13 10:33:29 UTC
         - will expire 2028-05-13T03:59:50Z
         - usable for decryption
         - @softkeys/7E4B52101EB3DB08967A1E5EB595D12FDA65BA50: available, unlocked
       - C06E45F8ABC3E59F44A9E811578DDDB66422E345
         - created 2025-05-13 10:33:29 UTC
         - will expire 2028-05-13T03:59:50Z
         - usable for signing
         - @softkeys/7E4B52101EB3DB08967A1E5EB595D12FDA65BA50: available, unlocked
       - E0BD231AB350AD6802D44C0A270E79FFC39C3B25
         - created 2025-05-13 10:33:29 UTC
         - will expire 2028-05-13T03:59:50Z
         - usable for signing
         - @softkeys/7E4B52101EB3DB08967A1E5EB595D12FDA65BA50: available, unlocked
    Copy to Clipboard Toggle word wrap

    鍵のフィンガープリントは、通常 sq key list --cert-userid <key_name> コマンド出力内の署名サブキーです (例: E0BD231AB350AD6802D44C0A270E79FFC39C3B25)。

  3. RPM ファイルに対応する署名があることを確認します。次に例を示します。

    $ rpm -Kv <package_name>.rpm
    <package_name>.rpm:
        Header V4 EdDSA/SHA512 Signature, key ID c39c3b25: OK
        Header SHA256 digest: OK
        Header SHA1 digest: OK
        Payload SHA256 digest: OK
        MD5 digest: OK
    Copy to Clipboard Toggle word wrap

    署名の鍵 ID は、鍵のフィンガープリントの末尾と一致します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat