png nginx ที่ไว้ใจได้ให้ข้อผิดพลาด gpg ของ KEYEXPIRED


34

ฉันได้รับข้อผิดพลาดต่อไปนี้ทุกครั้งที่ฉันทำการอัพเกรด apt-get:

ข้อผิดพลาด GPG: http://nginx.org trusty การเปิดตัว: ลายเซ็นต่อไปนี้ไม่ถูกต้อง: KEYEXPIRED 1471427554

ฉันเพิ่งติดตั้ง nginx ppa อย่างเป็นทางการด้วยวิธีมาตรฐานโดยเพิ่มสิ่งต่อไปนี้ลงในรายการแหล่งที่มาของฉัน

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 -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

สาเหตุหลักของปัญหานี้เป็นเพราะคีย์การลงนาม "เก่ากว่า" Nginx หมดอายุในวันที่ 17 สิงหาคม 2559:

$ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.