第4章 高度なトピック


本セクションでは、入門的なチュートリアルの範囲外のトピックについて説明しますが、実際の RPM パッケージ化で役に立ちます。

4.1. パッケージの署名

サードパーティーがそのコンテンツを変更できないようにパッケージに署名を行います。ユーザーは、パッケージをダウンロードする際に HTTPS プロトコルを使用して、セキュリティーをさらに強化できます。

パッケージの署名には、以下の 3 つの方法があります。

4.1.1. GPG キーの作成

手順

  1. GNU Privacy Guard (GPG) キーペアを生成します。

    # gpg --gen-key
  2. 生成したキーを確認し、表示します。

    # gpg --list-keys
  3. 公開鍵をエクスポートします。

    # gpg --export -a '<Key_name>' > RPM-GPG-KEY-pmanager
    注記

    <Key_name> の代わりにキーに対して選択した実際の名前を含めます。

  4. エクスポートした公開鍵を RPM データベースにインポートします。

    # rpm --import RPM-GPG-KEY-pmanager

4.1.2. 既存パッケージへの署名の追加

このセクションでは、署名なしでパッケージを構築する場合に最も役立つケースを説明します。この署名は、パッケージのリリースの直前に追加されます。

パッケージに署名を追加するには、rpm -sign パッケージで使用できる --addsign を指定します。

複数の署名があると、パッケージ作成者からエンドユーザーに、パッケージの所有権のパスを記録できます。

手順

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

    $ rpm --addsign blather-7.9-1.x86_64.rpm
    注記

    署名の秘密鍵のロックを解除するには、パスワードを入力する必要があります。

4.1.3. 複数の署名のあるパッケージの署名の確認

手順

  • 複数の署名を持つパッケージの署名を確認するには、以下のコマンドを実行します。

    $ rpm --checksig blather-7.9-1.x86_64.rpm
    blather-7.9-1.x86_64.rpm: size pgp pgp md5 OK

    rpm --checksig コマンドの出力の 2 つの pgp 文字列は、パッケージが回署名されていることを示しています。

4.1.4. 既存のパッケージに署名を追加する実用的な例

本セクションでは、既存のパッケージへの署名の追加が役立つ状況の例を示します。

ある会社の部門が、パッケージを作成し、その部門のキーで署名を行います。次に、本社がパッケージの署名を確認します。次に、そのパッケージにコーポレート署名を追加し、その署名されたパッケージが本物であることを表明します。

これら 2 つの署名が付いた状態で、パッケージが小売商に送られます。この小売商は、署名をチェックし、一致を確認して自身の署名も追加します。

そして、このパッケージは、このパッケージをデプロイメントしたいと思う会社へと向かいます。パッケージ上の署名をすべて確認すれば、その署名が正式コピーであることが分かります。パッケージが企業の承認を受けたことを従業員に通知するために、その会社独自の署名を追加するかどうかは、パッケージ導入を行う会社の内部管理によって決まります。

4.1.5. 既存のパッケージの署名の置き換え

この手順では、各パッケージを再構築せずに公開鍵を変更する方法を説明します。

手順

  • 公開鍵を変更するには、次のコマンドを実行します。

    $ rpm --resign blather-7.9-1.x86_64.rpm
    注記

    署名の秘密鍵のロックを解除するには、パスワードを入力する必要があります。

また、以下の手順で示しているように、--resign オプションを指定すると、複数のパッケージの公開鍵を変更できます。

手順

  • 複数のパッケージの公開鍵を変更するには、以下のコマンドを実行します。

    $ rpm --resign b*.rpm
    注記

    署名の秘密鍵のロックを解除するには、パスワードを入力する必要があります。

4.1.6. ビルド時のパッケージの署名

手順

  1. rpmbuild コマンドを使用して、パッケージを構築します。

    $ rpmbuild blather-7.9.spec
  2. --addsign オプションを指定して、rpmsign コマンドでパッケージに署名します。

    $ rpmsign --addsign blather-7.9-1.x86_64.rpm
  3. 必要に応じて、パッケージの署名を確認します。
$ rpm --checksig blather-7.9-1.x86_64.rpm
blather-7.9-1.x86_64.rpm: size pgp md5 OK
注記

複数のパッケージのビルドと署名を行う場合は、以下の構文を使用して Pretty good Privacy (PGP) パスフレーズを複数回入力しないようにします。

$ rpmbuild -ba --sign b*.spec

署名の秘密鍵のロックを解除にはパスワードを入力する必要があることに注意してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.