NGINX Plus、NGINX Amplify、またはnginx.orgからビルド済みの NGINX オープンソースバイナリを使用している場合は、NGINX ソフトウェアの GPG キーを今すぐ更新する必要がある場合があります。
一部の NGINX ソフトウェアのキー(詳細は後述)は 8 月 17 日水曜日に期限切れとなり、キーを更新するまでソフトウェア署名を検証できなくなります。 NGINX, Inc. 以外のプロバイダーから NGINX Open Source を取得する場合 (たとえば、オペレーティング システムのディストリビューション)、このお知らせは影響しません。
GPG キーは、 Gnu Privacy Guard (GnuPG) の一部です。 GnuPG は、PGP として広く知られているOpenPGP標準の無料実装です。 GPG キーは、リポジトリ内のパッケージがキーの所有者によって作成されたことを確認するために使用されます。
NGINX, Inc. は、ダウンロードしたパッケージの整合性と出所を確認できるように、RPM パッケージと Debian/Ubuntu リポジトリで GPG キーを使用します。 GPG キーの多くのユーザーは、キーを定期的に期限切れにするように設定しており、NGINX, Inc. の GPG キーは今年の 8 月 17 日に期限切れになります。 したがって、次の場合には GPG キーを更新する必要があります。
次の条件を満たす NGINX オープンソースを使用する場合は、GPG キーを更新する必要はありません。
gpg
--verify
コマンドを使用して、ソース パッケージの署名を直接検証できます。更新されたキーに切り替えるには、キーを再取得して再インポートするだけです。 プロセスはオペレーティング システムによって異なります。
キーの設定が間違っている場合、 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 署名を 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 キーがインポートされていません。リポジトリ nginx の repomd.xml を検証できません
キーを更新するには、新しい GPG キーをダウンロードして古いキーを上書きします。
# curl -O https://nginx.org/keys/nginx_signing.key && apt-key add ./nginx_signing.key
新しいキーの有効期限を確認するには、 apt-key
list
を実行します。
# apt-key リスト... pub 2048R/7BD9BF62 2011-08-19 [有効期限: 2024-06-14] uid nginx 署名キー ...
リポジトリが GPG キーをチェックおよび検証するように設定されているかどうかを確認します。 デフォルトでは、NGINX および NGINX Plus リポジトリではチェックは無効になっていますが、NGINX Amplify リポジトリではチェックが有効になっています。 /etc/yum.repos.d内の yum リポジトリ ファイルに次の行が含まれている場合、チェックは無効になります。
gpgcheck=0
チェックが無効になっているサンプル リポジトリ ファイル/etc/yum.repos.d/nginx.repoを次に示します。
[nginx]
name=nginx リポジトリ
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.rpm nginx-1.11.3-1.el7.ngx.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 は正常ではありません (キーがありません: (MD5) PGP#7bd9bf62)
キーが正しく構成されている場合は、次のメッセージが表示されます。
# rpm -K nginx-1.11.3-1.el7.ngx.x86_64.rpm nginx-1.11.3-1.el7.ngx.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
GPG キーを更新するには、次の手順を実行します。
現在 NGINX GPG キーがインストールされているかどうかを確認します。
# rpm -qi gpg-pubkey-7bd9bf62-*
キーがインストールされている場合、出力にはリリース番号とビルド日が含まれます。
...
リリース : 5762b5f8
...
ビルド日: 2011 年 8 月 19 日金曜日 05:52:34 AM EDT ...
インストールされていない場合は、次のメッセージが表示されます。
パッケージ gpg-pubkey-7bd9bf62-* がインストールされていません
現在の NGINX GPG キーを削除します。
# rpm -e --allmatches gpg-pubkey-7bd9bf62-*
新しいキーをダウンロードしてインストールします。
# curl -O https://nginx.org/keys/nginx_signing.key # rpm --import ./nginx_signing.key
(これらのプラットフォームでは確認出力はありません。)
新しい GPG キーのリリースとビルドの日付情報を確認します。
# rpm -qi gpg-pubkey-7bd9bf62-* ...
リリース : 4e4e3262 ...
ビルド日: 2016年6月16日(木)午前10時21分44秒 EDT
FreeBSD パッケージ管理システムは GPG キーを使用しないため、何もする必要はありません。
さらに、ダウンロードした GPG キーの信頼性を確認することもできます。 GPG は「信頼のウェブ」という概念を使用します。つまり、あるキーを別の人のキーで署名し、そのキーがさらに別のキーで署名される、というように繰り返します。
このアプローチにより、任意のキーと、個人的に知り合いで信頼している誰かのキーとの間にチェーンを構築し、チェーンの最初のキーの信頼性を検証することが可能になることがよくあります。 この概念については、 GPG Mini Howtoで詳しく説明されています。 NGINX, Inc. のキーには十分な署名があるため、その信頼性を確認するのは比較的簡単です。
GPG キーの更新中にサポートを受けるには:
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"