офіційний nginx надійний ppa дає помилку KEYEXPIRED gpg


34

Я отримую таку помилку щоразу, коли роблю оновлення apt-get:

Помилка GPG: http://nginx.org trusty Випуск: Наступні підписи були недійсними: KEYEXPIRED 1471427554

У мене просто офіційний nginx ppa встановлений стандартним способом, додавши наступне в мій source.list

deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

Це помилка з їхнього кінця, що вони зрештою сподіваються виправити, чи є щось, що я маю робити з мого кінця?


1
Ви завантажили цей ключ з NGINX , потім запустіть sudo apt-key add nginx_signing.keyі все ще отримуєте цю помилку?
Thomas Ward

2
це буває ... іноді. Але це ("1471427554") не схоже на дійсний ключ GPG. wget http://nginx.org/keys/nginx_signing.key -O - |sudo apt-key add -зробимо обидва кроки, запропоновані @ThomasWard в одній невеликій команді.
Phillip -Zyan K Lee- Stockmann

LANG=C sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1471427554повертає таку помилку: Executing: /tmp/tmp.EU8uLKmT5b/gpg.1.sh --keyserver keys.gnupg.net --recv-keys 1471427554 gpg: "1471427554" not a key ID: skipping
Phillip -Zyan K Lee- Stockmann

1
так, файл ключів також доступний через https.
Phillip -Zyan K Lee- Stockmann

1
@Phillip: Насправді 1471427554 - це часова мітка часу закінчення терміну дії ключа для підписання APT. Сучасні версії команди date розберуть її у читаному для вас форматі: date -u -d @1471427554дає Wed Aug 17 09:52:34 UTC 2016.
BertD

Відповіді:


48

Після додавання сторонніх сховищ у /etc/apt/sources.list.d/*файл або /etc/apt/sources.listвам потрібно переконатися, що відповідний gpg-ключ вставлений у схожий сховище ключів.

Щоб бути більш конкретним для цього особливого випадку сховища nginx.org: вам потрібно додати файл ключа nginx.org gpg, який використовується для підписання сховища.

Це можна зробити, завантаживши файл https://nginx.org/keys/nginx_signing.key вручну та видавшиsudo apt-key add nginx_signing.key (як пропонують nginx.org та @ThomasWard), або ви можете зробити це в одному рядку:

wget https://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -

Гаразд, це спрацювало, але я, мабуть, неправильно читаю чи щось пропускаю. Чому це раптом спливе зараз? Я цього не розумію.
codenoob

1
@linsong розповів, чому це з'явилося зараз: старий ключ gpg закінчився 17 серпня. Тому вам потрібно було завантажити новий ключ.
Phillip -Zyan K Lee- Stockmann

11

Першопричиною цієї проблеми є те, що 17 серпня 2016 року закінчився термін дії "старшого" ключа для підпису Nginx:

$ sudo apt-key list

pub   2048R/7BD9BF62 2011-08-19 [expired: 2016-08-17]
uid                  nginx signing key <signing-key@nginx.com>

Щоб вирішити цю проблему, додайте новий ключ підписання за допомогою команди, як запропоновано @ phillip-zyan-k-lee-stockmann та @ThomasWard:

wget https://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -

Новий ключ зараз закінчується в 2024 році:

$ sudo apt-key list

pub   2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
uid                  nginx signing key <signing-key@nginx.com>

Я думаю, що мені ця відповідь загалом подобається, оскільки вона намагається пояснити, що сталося краще. (Наведене вище пояснення не відповідало моєму випадку використання, незважаючи на відповідь.)
codenoob
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.