Score:0

ฉันจะรู้ได้อย่างไรว่า wget สามารถรองรับใบรับรอง ISRG Root X1 ใหม่ของ LetsEncrypt หลังจาก DST Root CA X3 หมดอายุ

ธง bg

ไม่กี่สัปดาห์ที่ผ่านมา (กันยายน 2021) LetsEncrypt เปลี่ยนวิธีการลงนามใบรับรองของพวกเขาซึ่งอาจส่งผลต่อโปรแกรมและไคลเอ็นต์รุ่นเก่าบางตัว ฉันมีเว็บเซิร์ฟเวอร์ Apache มาตรฐาน (สต็อก v2.4.41 จาก Ubuntu 20.04 apt) พร้อมใบรับรองการเข้ารหัสหลายรายการ

บางคนรายงานว่าได้รับใบรับรอง ssl ที่ไม่ถูกต้องจากฉันเมื่อใช้เครื่องมือยูนิกซ์มาตรฐานเช่น wget ฉันคิดว่าปัญหาคือ wget ของพวกเขาไม่รองรับใบรับรอง LE ใหม่นี้

ฉันจะ (และผู้ใช้) ทราบได้อย่างไรว่าปัญหาอยู่ที่พวกเขาจริงๆ หรือไม่ มีบ้างไหม ว้าว คำสั่งที่ผู้ใช้ของฉันสามารถเรียกใช้ได้ ซึ่งจะบอกฉันว่าเวอร์ชันของ wget ไม่รองรับใบรับรองใหม่เหล่านี้หรือไม่ ฉันสามารถให้คำสั่งใดเพื่อให้พวกเขา (& ฉัน) สามารถตรวจพบว่าปัญหาอยู่ที่พวกเขา ไม่ใช่ฉัน

Paul avatar
cn flag
ทั้งหมดที่ฉันทำเพื่อทำความเข้าใจว่าเกิดอะไรขึ้นสำหรับฉันคือทำการทดสอบที่การทดสอบเซิร์ฟเวอร์ SSL ของ Qualys รายงานใบรับรองที่เซิร์ฟเวอร์ให้มา และจากจุดนั้นพบว่าไคลเอ็นต์มีปัญหาบางอย่าง ดูเวอร์ชัน `wget` และ OS trust store คุณยังสามารถใช้ `--no-check-certificates` เพื่อปิดใช้งานฟังก์ชันใน `wget` ได้ แต่คุณจะปิดใช้งานความสามารถในการตรวจสอบเซิร์ฟเวอร์ ซึ่งเป็นอีกครึ่งหนึ่งของการเข้ารหัสการขนส่ง
dave_thompson_085 avatar
jp flag
@Paul+ เป็นเวอร์ชันของ OpenSSL ที่ใช้ _by_ wget (ถ้าเป็นบันทึกคำตอบ) ที่สำคัญไม่ใช่เวอร์ชันของ wget บน Linux และอาจเป็น Unix ส่วนใหญ่ ให้ตรวจสอบว่า `ldd $( which wget) ' เชื่อมโยง ' libssl ' และ ' libcrypto ' กับไลบรารี่ที่ระบบจัดหามาให้ ไลบรารีแบบกำหนดเอง หรือไม่เชื่อมต่อเลย (คงที่ลิงก์) อันดับแรก ให้ตรวจสอบเวอร์ชันของไลบรารีที่ระบบให้มา สำหรับอีกสองคนนั้นไม่มีทางคงเส้นคงวา
Paul avatar
cn flag
@ dave_thompson_085 ผิดในอดีต: https://stackoverflow.com/questions/30817876/wget-ssl-alert-handshake-failure
dave_thompson_085 avatar
jp flag
@Paul+ นั้น Q สำหรับ SNI ซึ่งเป็นปัญหาที่แตกต่างกันมากซึ่งผิดใน wget และต้องแก้ไขที่นั่น ปัญหา LE/DST ในคำถามนี้เป็นข้อผิดพลาดของ OpenSSL และ _can_ สามารถแก้ไขได้โดยการเปลี่ยน _only_ OpenSSL -- ดู https://pastebin.com/ZkdEpL6H -- แต่ในการทดสอบ **คุณพูดถูก _also_: wget 1.20.2 up มีการเปลี่ยนแปลงที่ข้ามบั๊ก OpenSSL**
Score:1
ธง cn

ตรวจสอบใบรับรองของคุณเหมือนเดิม โดยมีตัวเลือกผู้ทดสอบ TLS หรือแค่เบราว์เซอร์

ให้ผู้ใช้อัปเดตซอฟต์แวร์ไคลเอ็นต์ของตน

เดอะ ขยายอายุ DST Root CA X3 เครื่องหมายกากบาท เป็นหลักเพื่อยืดอายุของอุปกรณ์ Android เครื่องเก่า แน่นอนว่าไม่มีสิ่งใดเกี่ยวกับการนำ TLS ไปใช้นั้นง่าย ตีนี้ จุดบกพร่องใน OpenSSL 1.0.2 รุ่นเก่าซึ่งสิ่งนี้ไม่ได้ตรวจสอบความถูกต้องเท่าที่ควร.

ปัญหานี้กับ wget ต้องการ:

  • เรียบเรียง --with-ssl=openssl ซึ่งไม่ใช่ต้นน้ำเริ่มต้น
  • Old end of life OpenSSL 1.0.2 ซึ่งปกติไม่ควรใช้ แต่ distros ที่รองรับระยะยาวบางตัวยังคงรักษาไว้

ตัวอย่างเช่น RHEL 7 ควรได้รับผลกระทบ EL7 แก้ไขโดยอัปเดต ca-certificate เพื่อไม่ให้มีรูทที่หมดอายุอีกต่อไป

อีกสิ่งหนึ่งที่ควรลองคือฝั่งเซิร์ฟเวอร์ โดยต่ออายุด้วยเชน Let's Encrypt สำรอง การทิ้งรูท DST จะไม่ทำให้ OpenSSL เก่าสับสนอีกต่อไป แต่ Android รุ่นเก่าจะไม่ทำงาน

โพสต์คำตอบ

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