善意提醒

如果您打开本站很慢,布局排版混乱,并且看不到图片,那么可能是因为您还没有掌握用科学的方法上网的本领。

2024-06-20

Nginx 更新遇到 GPG 签名变更

图片来自网络

这些天对自己的 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。


没有评论:

发表评论