apt updateでNginxのsigning keyでエラーが発生したので、その原因と解決方法をまとめました。
apt updateでのエラー内容
apt updateを実行するとNginxのsigning key関連でエラーが発生しました。
$ sudo apt update Hit:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://nginx.org/packages/mainline/ubuntu jammy InRelease Get:3 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Err:2 http://nginx.org/packages/mainline/ubuntu jammy InRelease The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing keyHit:4 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease Get:5 http://jp.archive.ubuntu.com/ubuntu jammy-security InRelease [129 kB] Get:6 http://jp.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,736 kB] Get:7 http://jp.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,088 kB] Get:8 http://jp.archive.ubuntu.com/ubuntu jammy-updates/universe Translation-en [251 kB] Fetched 3,332 kB in 3s (1,006 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 15 packages can be upgraded. Run 'apt list --upgradable' to see them. W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://nginx.org/packages/mainline/ubuntu jammy InRelease: The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key W: Failed to fetch http://nginx.org/packages/mainline/ubuntu/dists/jammy/InRelease The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key W: Some index files failed to download. They have been ignored, or old ones used instead.
原因
現在登録されているNginxの署名鍵を確認すると、登録済みの署名鍵の期限が「[expired: 2024-06-14]」となっているため、有効期限が超過していたのがエラーの原因でしょう。
$ date Tue Jun 25 05:32:45 PM JST 2024 $ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg pub rsa2048 2011-08-19 [SC] [expired: 2024-06-14] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key
対応方法
Nginxの署名鍵をインポートし直して新しいものに更新します。
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Nginxの署名鍵が正常にインポートされている確認します。
$ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
出力されたrsa2048のfingerprintの値が「573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62」であることと、有効期限が更新されていることを確認してください。
$ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg pub rsa4096 2024-05-29 [SC] 8540A6F18833A80E9C1653A42FD21310B49F6B46 uid nginx signing keypub rsa2048 2011-08-19 [SC] [expires: 2027-05-24] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key pub rsa4096 2024-05-29 [SC] 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3 uid nginx signing key
これで問題なくapt updateできるようになりました。
署名鍵の更新が上手く行かない場合は、一度「/usr/share/keyrings/nginx-archive-keyring.gpg」を削除してから、再度インポートを行ってみて下さい。
コメント