Score:1

curl บอกว่าใบรับรองที่ถูกต้องหมดอายุแล้ว

ธง in

ฉันมี gitlab community edition ที่โฮสต์บนเซิร์ฟเวอร์ และเมื่อใช้ curl บนเซิร์ฟเวอร์นี้เพื่อดึงข้อมูลเว็บไซต์ gitlab ในเครื่องนี้ ฉันได้รับข้อผิดพลาดใบรับรองหมดอายุแม้ว่าวันที่นั้นจะถูกต้องก็ตาม:

curl --insecure -vvI https://gitlab.mysite.com 2>&1 | awk 'BEGIN { cert=0 } /^\* ใบรับรองเซิร์ฟเวอร์:/ { cert=1 } /^\*/ { if (cert) print }'
* ใบรับรองเซิร์ฟเวอร์:
* เรื่อง: CN=gitlab.mysite.com
* วันที่เริ่มต้น: 12 พ.ย. 14:36:12 น. 2021 GMT
* วันหมดอายุ: 10 ก.พ. 14:36:11 2022 GMT
* ผู้ออก: C=US; O=มาเข้ารหัสกันเถอะ; CN=R3
* ผลการตรวจสอบใบรับรอง SSL: ใบรับรองหมดอายุ (10) ดำเนินการต่อไป

แต่ฉันไม่พบข้อผิดพลาดใบรับรองหมดอายุเมื่อโหลดไซต์จากเบราว์เซอร์หรือเมื่อใช้ curl บนเซิร์ฟเวอร์อื่น ข้อผิดพลาดจะปรากฏขึ้นเมื่อใช้ curl ในเครื่องเท่านั้น บนเซิร์ฟเวอร์ที่โฮสต์อินสแตนซ์ gitlab ce

นี่คือผลลัพธ์เมื่อใช้ curl บนเซิร์ฟเวอร์อื่น:

* ใบรับรองเซิร์ฟเวอร์:
* เรื่อง: CN=gitlab.mysite.com
* วันที่เริ่มต้น: 12 พ.ย. 14:36:12 น. 2021 GMT
* วันหมดอายุ: 10 ก.พ. 14:36:11 2022 GMT
* ผู้ออก: C=US; O=มาเข้ารหัสกันเถอะ; CN=R3
* ใบรับรอง SSL ตรวจสอบตกลง

เป็นไปได้ไหมว่ามีปัญหาเนื่องจาก curl กำลังแก้ไขไปยังเว็บไซต์ท้องถิ่น (แก้ไข ip = 127.0.1.1)

cn flag
Bob
ปัญหาอาจเกิดจากใบรับรองรูทเข้ารหัส Let's เก่า แทนที่จะเป็นใบรับรองเซิร์ฟเวอร์จริง https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
tio oit avatar
in flag
ฉันใช้ OpenSSL เพื่อรับข้อมูลเพิ่มเติม และนี่คือสิ่งที่ฉันได้รับ : openssl s_client -showcerts -connect gitlab.mysite.com:443
Raul Benet avatar
ru flag
@tiooit คุณใช้ระบบปฏิบัติการและเวอร์ชันใด ขดรุ่นอะไรครับ? SSL เวอร์ชันใดที่ curl ใช้ (หากคุณใช้ Linux คุณสามารถค้นหาได้โดยทำ "sh$ readelf -d ` which curl`" และค้นหารายการที่มี libssl ] ?
Raul Benet avatar
ru flag
ขออภัย การจัดรูปแบบทำให้คำสั่ง `readelf` ในความคิดเห็นด้านบนสับสน - มาดูกันว่าคราวนี้ฉันเข้าใจถูกต้องหรือไม่ ```sh$ readelf -d `ซึ่ง curl` ```
tio oit avatar
in flag
เซิร์ฟเวอร์กำลังรัน `Debian 9.13` พร้อมด้วย `curl 7.52.1` แต่คำสั่ง `readelf` ไม่แสดงข้อมูล libssl ใดๆ
Raul Benet avatar
ru flag
ปรากฎว่าใน Debian 9.3 (และอื่น ๆ อีกมากมาย) `curl` ขึ้นอยู่กับ `libcurl` ก่อน ซึ่งจะขึ้นอยู่กับ `libssl` เหตุใดคุณจึงไม่มีข้อมูล libssl เมื่อออก readelf การตรวจสอบพื้นที่เก็บข้อมูล Debian 9.3 แสดงให้เห็นว่า `curl` ใช้ OpenSSL 1.0.2d ในท้ายที่สุด (ซึ่งอาจเป็นอิสระจากการติดตั้งแพ็คเกจ `openssl` ของคุณ) ด้วยเหตุนี้ คุณจึงน่าจะได้รับผลกระทบจากปัญหาที่กล่าวถึงในคำตอบของฉัน
Raul Benet avatar
ru flag
อันที่จริง คำถามของคุณน่าจะซ้ำกับ https://serverfault.com/q/1079199/473319 และก่อนอื่นฉันจะลองทำตามคำตอบ: https://serverfault.com/a/1080278/473319
tio oit avatar
in flag
คุณพูดถูก! การใช้การแก้ไขคำตอบที่กล่าวถึงช่วยแก้ปัญหาได้ ขอบคุณ :)
Score:3
ธง ru

ฉันมีอาการเหล่านั้น (ทำงานบนเบราว์เซอร์ ล้มเหลวใน Curl) บนเครื่อง Ubuntu 16.04 ของฉัน curl 7.47.0

ในกรณีของฉัน ปัญหานี้เกิดขึ้นจากใบรับรองที่หมดอายุของ Let's Encrypt (ตามที่ Bob กล่าวถึง) แต่จริง ๆ แล้วสร้างขึ้นโดย บั๊ก ในการจัดการ OpenSSL ของแผนผังใบรับรองแบบหลายเส้นทาง

อูบุนตู 16.04

ปัญหานี้เกี่ยวกับ OpenSSL ได้รับการแก้ไขในเวอร์ชัน 1.0.2g-1ubuntu4.20 (ล่าสุด ณ วันนี้) ของแพ็คเกจสำหรับ Ubuntu 16.04 (ดูบันทึกการเปลี่ยนแปลง ที่นี่).

หากคุณใช้ Ubuntu 16.04 ให้ลองอัปเดต OpenSSL เป็นเวอร์ชันล่าสุด หากคุณอยู่ในระบบอื่น ให้ตรวจสอบเวอร์ชันของ OpenSSL รุ่นก่อน 1.1.x มีปัญหาและต้องการ "แพทช์" (ดังที่ทำกับ Ubuntu distro ที่กล่าวถึงข้างต้น) หากคุณไม่สามารถเปลี่ยนไปใช้เวอร์ชัน OpenSSL ที่มีการแก้ไขได้ คุณสามารถใช้การปิดใช้งานใบรับรองที่เป็นสาเหตุของปัญหาได้ วิธีปิดใช้งานใบรับรองจะแตกต่างกันไปตาม OS/Distribution ของคุณ

เดเบียน 9.3

(คำตอบที่อัปเดต - เมื่อ OP ระบุว่าระบบปฏิบัติการเป็น Debian 9.3)
ดูเหมือนว่าสำหรับ Debian 9.3 นี่จะเป็นคำถามที่ซ้ำกัน (ฉันไม่มีสิทธิ์มากพอที่จะทำเครื่องหมายเช่นนี้)
ลูกค้าบน Debian 9 รายงานใบรับรองที่หมดอายุอย่างผิดพลาดสำหรับโดเมนที่ออกโดยเข้ารหัสลับ
และ OP ประสบความสำเร็จในการใช้คำตอบนี้ (ซึ่งเทียบเท่ากับคำแนะนำของฉันด้านบนสำหรับ Ubuntu 16.04):
https://serverfault.com/a/1080278/473319

ข้อมูลมากกว่านี้

หน้าต่อไปนี้สามารถให้ข้อมูลพื้นฐานและตัวชี้เพิ่มเติมเพื่อทำความเข้าใจปัญหาได้ดีขึ้น https://scotthelme.co.uk/lets-encrypt-old-root-expiration/

tio oit avatar
in flag
ขอขอบคุณสำหรับคำแนะนำของคุณ. ฉันตรวจสอบเวอร์ชัน OpenSSL แล้วและเป็นเวอร์ชัน 1.1.0l ดังนั้นจึงไม่ควรได้รับผลกระทบจากข้อบกพร่องที่คุณอ้างถึง ฉันเพิ่งต่ออายุใบรับรอง แต่ก็ยังใช้งานไม่ได้เมื่อเรียกเว็บไซต์จากเซิร์ฟเวอร์ที่โฮสต์
Paul avatar
cn flag
Ubuntu 16.04 คือ EOL โปรดอัปเกรดเซิร์ฟเวอร์ของคุณเป็นเวอร์ชันที่ได้รับการบำรุงรักษา
tio oit avatar
in flag
สำหรับทุกคนที่กำลังมองหาวิธีแก้ปัญหา Raul Benet ให้คำตอบในความคิดเห็นในคำถามของฉัน
Raul Benet avatar
ru flag
เพื่อให้ชัดเจนยิ่งขึ้นฉันได้ปรับปรุงคำตอบ @tiooit โปรดยอมรับอีกครั้ง จึงทำเครื่องหมายว่าตอบแล้ว ขอบคุณ.

โพสต์คำตอบ

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