![]() |
| 图片来自网络 |
这些天对自己的 Debian 系统进行 apt update 的时候,总是遇到报错:
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/debian buster InRelease: The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com> W: Failed to fetch http://nginx.org/packages/mainline/debian/dists/buster/InRelease The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com> W: Some index files failed to download. They have been ignored, or old ones used instead.
我的 Nginx 是按照 官方指引 从来源安装的 mainline 版本,不是直接用的 Debian 的 apt 源内置的 Nginx。Debian 的 Nginx 我嫌它版本低了。
当时瞄了一眼,知道是说 GPG 的签名出了问题。这种问题可大可小,如果是之前的版本被人植入了恶意代码,就像之前的 XZ/liblzma后门事件,那么一整个源可能会被撤销。
但我也看到了「EXP」字样,所以似乎只是简单的 Key 过期而已。并且同期并没有大的信息安全新闻爆出,不像是安全事故。鉴于我当时的时间紧张,并没有当场去处理它,反正 Nginx 更新得并不是很频繁。
今天花了点时间来仔细看了一下,果然是 Nginx 的 PGP Key 在 6 月 14 日过期了。Nginx的官方Blog 登载了 这一则通知,同时也提供了更新的方法。
按照官方的指引,只需要执行下列命令即可:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
如果你是像我一样在 root 下面操作,并且没有安装 sudo,那么去掉 sudo 就好:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
更新完 Key 以后,可以用下列命令来验证新 Key 的过期时间:
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
据 Nginx 这篇 Blog 中称,今后将以大概每两年一次的频率对他们的 PGP Key 进行更新。果然这次得到的新 Key 的到期时间就是 2027-05-24。

没有评论:
发表评论