apt updateでNginxのsigning keyのエラーが発生した場合の対応方法

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 key 
Hit: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 key 

pub   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」を削除してから、再度インポートを行ってみて下さい。

コメント

タイトルとURLをコピーしました