NGINX製品のGPGキーの更新

NGINX | 2016年8月08日

NGINX Plus、NGINX Amplify、またはビルド済みのNGINX Open Sourceバイナリをnginx.orgから入手して使用している場合は、NGINXソフトウェアのGPGキーを今すぐ更新する必要がある可能性があります。

一部のNGINXソフトウェアのキー(詳細は以下で説明します)は8月17日(水)に有効期限が切れます。キーを更新するまで、ソフトウェアの署名を検証できなくなります。オペレーティングシステムのディストリビューションなど、NGINX, Inc.以外のプロバイダーからNGINX Open Sourceを入手している場合、このお知らせの影響はありません。

GPGキーは、Gnu Privacy Guard(GnuPG)の一部です。GnuPGは、OpenPGP標準(PGPとして広く知られています)のフリー実装です。GPGキーは、リポジトリ内のパッケージがそのキーの所有者によって作成されたことを検証するために使用されます。

キーの更新が必要な方

NGINX, Inc.では、ダウンロードしたパッケージの完全性と配布元を確認できるよう、RPMパッケージおよびDebian/UbuntuリポジトリにGPGキーを使用しています。多くのGPGキーユーザーはキーに定期的な有効期限を設定しており、NGINX, Inc.のGPGキーは来る8月17日に期限切れとなります。そのため、以下に該当する場合はGPGキーを更新する必要があります。

  • NGINX Plusを使用している
  • NGINX Amplifyを使用
  • NGINX, Inc.が提供するNGINX Open Sourceバイナリを使用する

次のNGINX Open Sourceを使用している場合、GPGキーを更新する必要はありません。

  • オペレーティングシステムのパッケージからインストールしたもの。ほとんどのオペレーティングシステムでは、リポジトリにNGINXが含まれています。
  • ソースからご自身でコンパイルしたもの。ソースパッケージの署名は、gpgの--verifyコマンドを使用して直接検証できます。

GPGキーの更新

更新されたキーに切り替えるには、キーを再取得して再インポートするだけです。手順はオペレーティングシステムによって異なります。

Debian/Ubuntuでのキーの更新

キーの設定に誤りがある場合、apt-get updateを実行すると、次のいずれかのエラーが表示されます。

nginx/x86_64/signature                                                   | 2.9 kB  00:00:10 !!!http://nginx.org/packages/mainline/centos/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for nginx
nginx/x86_64/signature                                                   | 2.9 kB  00:00:00 !!!http://nginx.org/packages/mainline/centos/7/x86_64/repodata/repomd.xml: [Errno -1] Gpg Keys not imported, cannot verify repomd.xml for repo nginx

キーを更新するには、新しいGPGキーをダウンロードし、古いキーを上書きします。

# curl -O https://nginx.org/keys/nginx_signing.key && apt-key add ./nginx_signing.key

新しいキーの有効期限を確認するには、次のコマンドを実行します:apt-key list:

# apt-key list
...
pub   2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
uid                  nginx signing key <signing-key@nginx.com>
...

Amazon Linux、CentOS、Oracle Linux、RHEL、SLESでのキーの更新

リポジトリがGPGキーを確認および検証するように設定されているか確認します。デフォルトでは、NGINXおよびNGINX Plusリポジトリではこの確認が無効、NGINX Amplifyリポジトリでは有効になっています。/etc/yum.repos.d内のyumリポジトリファイルに次の行が含まれている場合、この確認は無効です。

gpgcheck=0

以下は、チェックを無効にしたリポジトリファイルの例です。/etc/yum.repos.d/nginx.repo:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

この場合、対応は不要です。(チェックを無効にすると、新しいパッケージのインストール時に警告が表示されますが、インストール自体は正常に完了します。)

GPGチェックを明示的に設定している場合は、キーを置き換える必要があります。

ローカルにダウンロードしたパッケージの真正性は、次のrpm -Kコマンドを実行して確認できます:

  • キーがない場合、次のエラーが表示されます:
# rpm -K nginx-1.11.3-1.el7.ngx.x86_64.rpmnginx-1.11.3-1.el7.ngx.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#7bd9bf62)
  • キーが正しく設定されている場合、次のメッセージが表示されます。
# rpm -K nginx-1.11.3-1.el7.ngx.x86_64.rpmnginx-1.11.3-1.el7.ngx.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

GPGキーを更新するには、次の手順を実行します。

  1. NGINX GPGキーが現在インストールされているか確認します:
# rpm -qi gpg-pubkey-7bd9bf62-*
  1. キーがインストールされている場合、出力にはリリース番号とビルド日が含まれます:
...
Release     : 5762b5f8
...
Build Date  : Fri 19 Aug 2011 05:52:34 AM EDT
...
  1. インストールされていない場合は、次のメッセージが表示されます。
package gpg-pubkey-7bd9bf62-* is not installed
  1. 現在のNGINX GPGキーを削除します:
# rpm -e --allmatches gpg-pubkey-7bd9bf62-*
  1. 新しいキーをダウンロードしてインストールします:
# curl -O https://nginx.org/keys/nginx_signing.key# rpm --import ./nginx_signing.key
  1. (これらのプラットフォームでは、確認メッセージは出力されません。)
  2. 新しいGPGキーのリリース情報とビルド日を確認します:
# rpm -qi gpg-pubkey-7bd9bf62-*...
Release     : 4e4e3262
...
Build Date  : Thu 16 Jun 2016 10:21:44 AM EDT

FreeBSDでのキーの更新

FreeBSDのパッケージ管理システムではGPGキーを使用しないため、対応は不要です。

GPGキーの真正性の確認

ダウンロードしたGPGキーが真正なものであることを、さらに検証できます。GPGでは「信頼の輪」という概念が使用されます。あるキーを別の人のキーで署名し、そのキーをさらに別のキーで署名する、というように信頼を連鎖させます。

この方法では、多くの場合、任意の鍵と、個人的に面識があり信頼している人物の鍵との間に信頼の連鎖を構築できるため、その連鎖の起点となる鍵の真正性を検証できます。この概念については、「GPG Mini Howto」で詳しく説明されています。NGINX, Inc.の鍵には十分な数の署名があるため、その真正性を比較的容易に確認できます。

サポートの利用

GPGキーの更新に関するサポートを受けるには:


共有

著者について

Nick Shadrin
Nick Shadrinソフトウェアアーキテクト

Nick Shadrinのその他のブログ記事

関連するブログ記事

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
NGINX | 2024/01/18

チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する

OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
NGINX | 2023/05/31

AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正

Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
NGINX | 2023/02/09

JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法

Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINX | 2022/05/24

F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング

NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
NGINX | 2018/08/17

SELinuxでNGINXおよびNGINX Plusを使用する

Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。

NGINX PlusによるAWS Auto Scalingグループの負荷分散
NGINX | 2017/03/06

NGINX PlusによるAWS Auto Scalingグループの負荷分散

新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります