ฉันพบปัญหานี้เช่นกัน ฉันได้อ่านหัวข้อนี้และคำตอบส่วนใหญ่มีข้อมูล แต่ซับซ้อนเกินไปสำหรับฉัน ฉันไม่มีประสบการณ์เกี่ยวกับหัวข้อเครือข่ายดังนั้นคำตอบนี้เหมาะสำหรับคนอย่างฉัน
ในกรณีของฉันข้อผิดพลาดนี้เกิดขึ้นเพราะฉันไม่ได้รวมใบรับรองระดับกลางและใบรับรองรูทถัดจากใบรับรองที่ฉันใช้ในแอปพลิเคชันของฉัน
นี่คือสิ่งที่ฉันได้รับจากผู้จำหน่ายใบรับรอง SSL:
- abc.crt
- abc.pem
- abc-bunde.crt
ในabc.crt
ไฟล์มีใบรับรองเดียวเท่านั้น:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
ถ้าฉันให้มันในรูปแบบนี้เบราว์เซอร์จะไม่แสดงข้อผิดพลาดใด ๆ (Firefox) แต่ฉันจะได้รับcurl: (60) SSL certificate : unable to get local issuer certificate
ข้อผิดพลาดเมื่อฉันทำคำขอขด
เพื่อแก้ไขข้อผิดพลาดนี้ให้ตรวจสอบabc-bunde.crt
ไฟล์ของคุณ คุณมักจะเห็นอะไรเช่นนี้:
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
นี่คือใบรับรองระดับกลางและระดับรูทของคุณ เกิดข้อผิดพลาดเนื่องจากไม่มีใบรับรอง SSL ที่คุณส่งให้แอปพลิเคชันของคุณ
ในการแก้ไขข้อผิดพลาดให้รวมเนื้อหาของไฟล์ทั้งสองนี้ในรูปแบบนี้:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
โปรดทราบว่าไม่มีช่องว่างระหว่างใบรับรองในตอนท้ายหรือตอนเริ่มต้นของไฟล์ เมื่อคุณจัดหาใบรับรองรวมนี้ให้กับใบสมัครของคุณปัญหาของคุณควรได้รับการแก้ไข