Score:19

ลูกค้าบน Debian 9 รายงานใบรับรองที่หมดอายุอย่างไม่ถูกต้องสำหรับโดเมนที่ออกโดยเข้ารหัสลับ

ธง in

หากฉันพยายามเข้าถึงเซิร์ฟเวอร์ HTTPS ที่มีใบรับรองที่ออกโดย certbot จากเดเบียน 9 ฉันได้รับข้อผิดพลาดต่อไปนี้:

 # ขด -v https://hu.dbpedia.org/
 * ลอง 195.111.2.82...
 * ตั้งค่า TCP_NODELAY
 * เชื่อมต่อกับ hu.dbpedia.org (195.111.2.82) พอร์ต 443 (#0)
 * ALPN ให้บริการ h2
 * ALPN ให้บริการ http/1.1
 * การเลือกรหัส: ทั้งหมด:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
 * ตั้งค่าตำแหน่งการตรวจสอบใบรับรองสำเร็จแล้ว:
 * ไฟล์ CA: /etc/ssl/certs/ca-certificates.crt
   CApath: /etc/ssl/certs
 * TLSv1.2 (ออก), ส่วนหัว TLS, สถานะใบรับรอง (22):
 * TLSv1.2 (ออก), การจับมือ TLS, สวัสดีลูกค้า (1):
 * TLSv1.2 (IN), การจับมือ TLS, สวัสดีเซิร์ฟเวอร์ (2):
 * TLSv1.2 (IN), การจับมือ TLS, ใบรับรอง (11):
 * TLSv1.2 (ออก), แจ้งเตือน TLS, สวัสดีเซิร์ฟเวอร์ (2):
 * ปัญหาใบรับรอง SSL: ใบรับรองหมดอายุ
 * Curl_http_done: เรียกว่าคลอดก่อนกำหนด == 1
 * หยุดสตรีมชั่วคราว!
 * ปิดการเชื่อมต่อ 0
 curl: (60) ปัญหาใบรับรอง SSL: ใบรับรองหมดอายุ

อย่างไรก็ตาม หากฉันลองใช้คำสั่งเดียวกันจากเดเบียน 10 ก็จะสำเร็จ

ฉันพยายามคัดลอกใบรับรอง ca ทั้งหมดจาก debian 10 VM ไปยัง debian 9 VM (ไปยัง /usr/local/share/ca-certificates) ด้วย rsync แล้วรัน update-ca-ใบรับรอง ซึ่งดูเหมือนจะเพิ่ม 400+ ใบรับรอง น่าเสียดายที่มันไม่ได้ช่วยอะไร ไม่น่าแปลกใจเลยที่ดูเหมือนว่ามีใบรับรองเดียวกันทั้งในเดเบียน 9 และ 10

คำถามของฉันคือ: ฉันจะเข้าถึงไซต์ด้วยใบรับรอง certbot จากเครื่อง debian 9 ได้อย่างไร โดยไม่สนใจการตรวจสอบใบรับรองเลย

P.Péter avatar
in flag
@GeraldSchneider น่าเสียดาย นั่นไม่ใช่ทางเลือก อย่างน้อยก็ในระยะสั้น ฉันต้องการวิธีแก้ปัญหาชั่วคราวจนกว่าจะทำการอัปเกรดได้
P.Péter avatar
in flag
เรื่องน่ารู้: OSX เวอร์ชันเก่า (~4 ปี) ประสบปัญหาเดียวกันพวกเขาอาจใช้และเวอร์ชัน openssl เก่า
Score:25
ธง cn

ก่อนอื่น Debian 9 คือ EOL แต่เนื่องจากลูกค้าอาจไม่อยู่ภายใต้การควบคุมของคุณ แน่นอนว่าคุณอาจต้องการพยายามตอบสนองพวกเขาในความแตกแยกนี้

ฉันคิดว่าในขณะที่คำถามกล่าวถึงเท่านั้น ใบรับรองว่ามันเกี่ยวกับ Letsencrypt โดยเฉพาะจริงๆ
(เครื่องมือ ใบรับรอง ตัวเองเป็นไคลเอนต์โปรโตคอล ACME ซึ่งใช้กับ CA ที่ใช้ ACME อื่น ๆ ดังนั้นจึงมีช่องว่างสำหรับความสับสนที่นี่)

ปัญหาที่เกิดขึ้นดูเหมือนจะเป็นการรวมกันของ:

  • รูท Letsencrypt เก่า ("DST Root CA X3") หมดอายุแล้ว
  • ใหม่ ค่าเริ่มต้น โซ่ LE พยายามที่จะ "เข้ากันได้เป็นพิเศษ" โดยนำเสนอส่วนขยายทางเลือกของเชนที่รูทใหม่ ("ISRG Root X1") ถูกนำเสนอเป็นตัวกลางแบบ cross-signed สำหรับรูทเก่า (เนื่องจาก Android เวอร์ชันเก่ามากยังคงยอมรับรูทที่หมดอายุ แต่ไม่มีรูทใหม่ )
  • Opensl 1.0 มีข้อผิดพลาด ทำให้มันลองใช้เชนแรกที่เห็นและหากไม่ชอบ ก็จะไม่มองถึงความเป็นไปได้อื่นๆ (เช่น เชนใหม่ที่สั้นลงที่สิ้นสุดที่ X1 เทียบกับส่วนขยาย "ความเข้ากันได้" ที่ยาวขึ้นของเชนนั้นที่ต้องผ่าน X1 ถึง X3)
  • libcurl3 บนเดเบียน 9 เชื่อมโยงกับ libssl 1.0

หากคุณนำเสนอเชนใบรับรอง LE ใหม่ที่ไม่ได้พยายามเข้ากันได้เป็นพิเศษ เพียงแค่สิ้นสุดที่รูทใหม่ (X1) จะเป็นการอนุญาตให้ libssl 1.0 ทำงานได้ (แต่คุณจะสูญเสียความเข้ากันได้กับ Android รุ่นเก่าจริงๆ แทน)

นอกเหนือจากนั้น CA อื่นๆ (ACME หรืออื่นๆ) น่าจะเป็นตัวเลือกที่ควรพิจารณา

P.Péter avatar
in flag
นี่เป็นคำอธิบายที่ดีที่สุดสำหรับปัญหา ขอบคุณ!
P.Péter avatar
in flag
อย่างไรก็ตาม วิธีปิดใช้งานใบรับรองแบบ "เดเบียน" ส่วนใหญ่จะเรียกใช้ `dpkg-reconfigure ca-certificates` และยกเลิกการเลือกใบรับรองที่ไม่เหมาะสมจากรายการ
Orphans avatar
cn flag
Debian 9 ไม่ใช่ End-of-Life จริงๆ Debian 8 ถึง EOL ในฤดูร้อนนี้ แต่ Debian 9 ยังคงได้รับการสนับสนุนด้วยการอัปเดตความปลอดภัย
bN_ avatar
lu flag
bN_
เป็นคำอธิบายที่ดีเกี่ยวกับสาเหตุของปัญหา แต่สามารถแก้ไขได้โดยไม่ต้องอัปเกรดเป็น Debian 10 หรือไม่
bN_ avatar
lu flag
bN_
แก้ไข: @P.Péter โดยใช้ `dpkg-reconfigure ca-certificates` เพื่อยกเลิกการเลือก "DST Root CA X3" เพื่อแก้ปัญหา คำตอบที่ยอมรับมีคำอธิบายจริง ๆ แต่ไม่มีวิธีแก้ปัญหา ควรอัปเดตด้วยความคิดเห็น @P.Péter
Han avatar
us flag
Han
ฉันยังไม่ได้ลองใช้ openssl เวอร์ชันล่าสุด แต่ฉันพบปัญหาเดียวกันกับ `openssl 1.1.1c` ในระบบ Debian ของฉัน และแก้ปัญหาด้วยการลบใบรับรอง DST X3 ที่หมดอายุและเพิ่มใบรับรอง ISRG X1 ใหม่ (โดยเรียกใช้ `dpkg -กำหนดค่าใหม่`) . ดู[บทความนี้](https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/)เพื่อดูรายละเอียด
Score:25
ธง cn

คำเตือน! โปรดวางแผนเส้นทางการอัปเกรดระบบปฏิบัติการ คำแนะนำด้านล่างนี้ควรใช้ในสถานการณ์ฉุกเฉินเท่านั้น เพื่อแก้ไขระบบที่สำคัญได้อย่างรวดเร็ว

โซลูชันด้านล่างใช้งานได้กับ Debian Jessy 8 และควรปรับปรุงใน Stretch 9 ที่ขาดหายไปเช่นกัน ฉันเพิ่งทดสอบมัน นักเทียบท่าเรียกใช้ -it debian:jessie bash, apt-get update && apt-get ติดตั้ง curl.

ก่อน:

# ขด -I https://hu.dbpedia.org
curl: (60) ปัญหาใบรับรอง SSL: ใบรับรองหมดอายุ
รายละเอียดเพิ่มเติมที่นี่: http://curl.haxx.se/docs/sslcerts.html
....

ขั้นแรก ตรวจสอบว่าคุณละเมิดใบรับรอง DST Root CA X3 หรือไม่:

# grep X3 /etc/ca-certificates.conf 
mozilla/DST_Root_CA_X3.crt

Debian รุ่นเก่ามี ISRG Root X1 ที่เหมาะสมอยู่ด้วย:

# grep X1 /etc/ca-certificates.conf 
mozilla/ISRG_Root_X1.crt

สิ่งนี้จะปิดการใช้งาน X3:

# sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf && update-ca-certificates -f

โดเมนของคุณตอบสนองต่อ curl ได้ดี:

# ขด -I https://hu.dbpedia.org/
HTTP/1.1 200 ตกลง
...

โปรดวางแผนการอัปเกรดอีกครั้ง

sh flag
Ray
การลบ/แสดงความคิดเห็นใบรับรองในไฟล์ conf นี้ได้ผลสำหรับเราเช่นกัน ขอขอบคุณสำหรับความช่วยเหลือ.
sb flag
ฉันสามารถยืนยันได้ว่าสิ่งนี้ใช้ได้กับ Debian Stretch เช่นกัน
luminol avatar
uz flag
ทำงานบนเซิร์ฟเวอร์ Debian GNU/Linux 10 (บัสเตอร์) สามเครื่องของฉัน สี่อันหายไปใน 1 วันและฉันต้องถอดลอนส่วนใหญ่ออกเพื่อให้ทำงานได้ เว็บไซต์หนึ่งที่โฮสต์บน Debian Buster ยังใช้งานไม่ได้ แต่อาจเป็นข้อผิดพลาดอื่น ฉันคิดว่าเนื่องจากสามเว็บไซต์ก่อนหน้านี้หยุดทำงานในวันที่ 1 ตุลาคม แต่เว็บไซต์ที่มีข้อผิดพลาดที่เหลือหยุดทำงานในวันที่ 4 มกราคม ขอขอบคุณ!
Score:5
ธง ru
ndd

ใบรับรองรูท DST Root CA X3 หมดอายุในวันที่ 30 กันยายน 14:01:15 น. 2021 GMT ถูกใช้เป็นหนึ่งในเส้นทางการรับรองสำหรับใบรับรองการเข้ารหัสของ Letâ รุ่น cURL ที่เก่ากว่ามีข้อบกพร่องที่จะทำให้รูตที่หมดอายุแล้วไม่สามารถเชื่อมต่อได้ แทนที่จะลองใช้รูทอื่นๆ ในร้านค้า ca ในเครื่อง

ณ วันที่ 30 กันยายน 2021 ca เก็บสำหรับ curl (https://curl.se/docs/caextract.html) ยังคงมีใบรับรองรูท DST Root CA X3 ที่หมดอายุ ดังนั้นการอัปเดตจะไม่แก้ไขปัญหา คุณสามารถอัปเดต cURL ของคุณ (ซึ่งอาจค่อนข้างท้าทายในบางสถานการณ์) หรือแก้ไขที่เก็บ ca ในเครื่อง (f.e. /etc/pki/tls/certs/ca-bundle.crt) และลบใบรับรองด้วยตนเองหลังจากบรรทัด "DST Root CA X3"

Score:2
ธง bd

ฉันเพิ่งมีปัญหากับอิมเมจ Docker ที่ใช้ Debian Stretch วิธีแก้ปัญหานั้นง่ายมาก ฉันคิดว่า Debian ได้รับการแก้ไขแล้ว libssl1.0.2 เพื่อแก้ไขปัญหาการเลือกเชนที่ HÃ¥kan ได้กล่าวถึง ในกรณีของฉัน อัปเดตเฉพาะใบรับรองและ libssl1.0.2 ด้วยการวิ่ง apt install -y libssl1.0.2 ca-ใบรับรอง (กับ การปรับปรุงที่เหมาะสม สำหรับคอนเทนเนอร์ล่วงหน้า) ก็เพียงพอแล้ว

Score:2
ธง in

สำหรับ Debian 8 และ 9 ฉันแค่ทำอย่างนั้นเพื่ออัปเดตใบรับรองบนโฮสต์และไม่มีข้อผิดพลาด 60 อีกต่อไป: ปัญหาใบรับรอง SSL: ใบรับรองหมดอายุแล้ว : https://github.com/xenetis/letsencrypt-expiration

เพียงแค่เรียกใช้มันควรจะใช้งานได้:

wget -O - https://raw.githubusercontent.com/xenetis/letsencrypt-expiration/main/letsencrypt-expiration.sh | ทุบตี
in flag
ยอดเยี่ยม ขอบคุณ! ฉันจะย้ายจาก Debian 9 ในที่สุด...
Score:0
ธง ae

ตามคำตอบของ Nicolo1ฉันรันสคริปต์บนเซิร์ฟเวอร์ Debian 9 ที่เก่าแล้วและยังคงได้รับข้อผิดพลาดใบรับรองหมดอายุเหมือนเดิม update-ca-ใบรับรอง หน้าคนพูดว่า

นอกจากนี้ ใบรับรองทั้งหมดที่มีนามสกุล .crt ซึ่งอยู่ด้านล่าง /usr/local/share/ca-certificates จะรวมอยู่ในใบรับรองที่เชื่อถือได้โดยปริยาย

สคริปต์ที่เขาแบ่งปัน ณ วันนี้ ดาวน์โหลดใบรับรอง ISRG & Letâs Encrypt เป็น .pem ไฟล์ดังนั้น update-ca-ใบรับรอง ไม่ รวมไว้โดยอัตโนมัติ หลังจากทำซอฟต์ลิงก์ไปยังสิ่งเหล่านี้แล้ว .pem ไฟล์ แต่ด้วย .crt ส่วนขยาย, กำลังทำงานอยู่ update-ca-ใบรับรอง รวมอีกครั้งและข้อผิดพลาดใบรับรองที่หมดอายุจะหายไป ขอบคุณสำหรับคำตอบ!

John Greene avatar
cn flag
ฉันมีสคริปต์ที่คัดลอกไฟล์ PEM ลงในไดเร็กทอรีการกำหนดค่าของ daemon เสมอ แทนที่จะเป็น symlink

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา