การแก้ไขที่แท้จริงสำหรับสิ่งนี้คือเพื่อให้แน่ใจว่าเซิร์ฟเวอร์ของคุณแสดงใบรับรองทั้งหมดในกลุ่มและไม่ใช่แค่ใบรับรอง end-entity (เซิร์ฟเวอร์)
ชี้ผู้ดูแลเซิร์ฟเวอร์ของคุณไปที่RFC 5246 มาตรา 7.4.2ซึ่งระบุไว้อย่างชัดเจนว่าข้อความนี้สื่อถึงห่วงโซ่ใบรับรองของเซิร์ฟเวอร์ไปยังไคลเอนต์
หากผู้ดูแลระบบของคุณปฏิเสธ / ไม่สามารถทำเช่นนี้ได้ด้วยเหตุผลบางอย่างตัวเลือกอื่นของคุณคือพยายามและcurl
ทำงานกับ handshake ที่มีรูปแบบไม่ถูกต้อง
ตามข้อความในรายการส่งจดหมายของ Curl:
บางคนสามารถยืนยันได้ว่า cURL รองรับใบรับรองระดับกลาง (หรือไม่) หรือไม่
ใช่. ใบรับรอง ca ทั้งหมดมีสายใบรับรองขึ้นไปถึงรูท ชุด ca ที่คุณใช้กับขดจำเป็นต้องประกอบด้วย certs สำหรับโซ่ทั้งหมด
/ daniel.haxx.se
คุณควรจะเพิ่ม Root CA และตัวกลางตัวกลางทั้งหมดลงในบันเดิลและชี้curl
ไปที่มันโดยใช้--cacert <file>
ตัวเลือก
เมื่อเบราว์เซอร์ของคุณทำงานคุณสามารถเข้าถึงใบรับรอง CA ที่ถูกต้องได้จากที่นั่น บนแท็บใบรับรอง (แตกต่างกันไปสำหรับแต่ละเบราว์เซอร์ แต่ฉันแน่ใจว่าคุณจะรู้ว่าสิ่งนั้นอยู่ที่ใด) ดูห่วงโซ่ใบรับรอง ดับเบิลคลิกที่ Root CA แรกGlobalSign Root CA - G1และในรายละเอียดแท็บคลิกคัดลอกไปยังไฟล์ ... root.cer
บันทึกเป็น ทำเช่นเดียวกันกับAlphaSSL CA - SHA256 - G2issuing.cer
และบันทึกเป็น เข้าร่วมกับทั้งสองร่วมกันในไฟล์เดียว (เช่นchain.cer
) -cacert
และการใช้งานที่เป็นอาร์กิวเมนต์ไป
ชี้เป็นความกรุณาโดย @AB ใบรับรองหายไปนอกจากนี้ยังสามารถพบได้ที่นี่
เบราว์เซอร์ของคุณทำงานได้เนื่องจากแคชใบรับรอง CA หากคุณเคยไปยังเว็บไซต์ที่กำหนดค่าไว้อย่างถูกต้องในบางจุดในอดีตซึ่งใบรับรองที่ออกโดย CA เดียวกับใบรับรองเซิร์ฟเวอร์ของคุณเบราว์เซอร์จะถูกแคช เมื่อคุณเยี่ยมชมไซต์ที่กำหนดค่าไม่ถูกต้องเบราว์เซอร์ของคุณจะใช้ใบรับรอง CA ในแคชเพื่อสร้างเครือข่าย สำหรับคุณดูเหมือนว่าทุกอย่างเรียบร้อยแม้ว่าเบื้องหลังเซิร์ฟเวอร์จะถูกกำหนดค่าผิดพลาด
โปรดทราบว่าใน Windows, IE / Edge และ Chrome แบ่งปันแคชเดียวกันในขณะที่ Firefox ใช้ของตัวเอง
นอกเหนือไปจากข้างต้น IE / ขอบและ Chrome (ตามที่พวกเขาร่วมกองการเข้ารหัสลับเดียวกัน) จะใช้นามสกุลภายในใบรับรองเรียกว่าAuthorityInformationAccess ตัวเลือกนี้มีตัวเลือกcaIssuerซึ่งให้ URL ซึ่งสามารถดาวน์โหลดใบรับรอง CA ของใบรับรองเอนทิตีของเอนทิตีได้ ดังนั้นแม้ว่าหนึ่งในเบราว์เซอร์เหล่านี้จะไม่เก็บใบรับรองที่หายไปจากการเรียกดูก่อนหน้านี้ แต่ก็สามารถดึงข้อมูลได้หากจำเป็น โปรดทราบว่า Firefox ไม่ทำเช่นนี้ซึ่งเป็นสาเหตุที่บางครั้ง Firefox สามารถแสดงข้อผิดพลาดของใบรับรองเมื่อ IE / Edge และ Chrome ทำงานได้