ฉันมีสองเซิร์ฟเวอร์ ก
และ ข
ที่โฮสต์เว็บไซต์ที่ทำงานได้ดีในเบราว์เซอร์ที่มี https ไอคอนแม่กุญแจในเบราว์เซอร์แสดงใบรับรอง SSL ที่ใช้งานและเชื่อถือได้
ฉันพยายามเรียกใช้ curl เพื่อให้เซิร์ฟเวอร์นั้น ก
สามารถพูดคุยกับเซิร์ฟเวอร์ ข
แต่ฉันพบข้อผิดพลาด
- เซิร์ฟเวอร์ A -
$ curl https://dev.partsvu.com
ไฟล์ CA: /etc/pki/tls/certs/ca-bundle.crt
curl: (60) ไม่รู้จักผู้ออกใบรับรองของเพียร์
ฉันได้ทำการวิจัยเกี่ยวกับไซต์ Stack Overflow และพบคำถามมากมาย อย่างไรก็ตาม วิธีแก้ปัญหาของพวกเขาไม่ได้ผลสำหรับฉัน
ฉันลองดาวน์โหลดไฟล์ใบรับรองสำหรับเซิร์ฟเวอร์ก่อน ข
จากรายงาน SSL Labs และเพิ่มรายการใบรับรองด้วยตนเองไปยัง /etc/pki/tls/certs/ca-bundle.crt
ไฟล์บนเซิร์ฟเวอร์ ก
แต่ฉันยังคงได้รับข้อผิดพลาดเดิม
ฉันยังมั่นใจว่าเซิร์ฟเวอร์ ข
ใบรับรองถูกต้องดังต่อไปนี้:
- เซิร์ฟเวอร์ B -
opensl x509 - วันที่ -noout < /etc/pki/tls/certs/cloudflare.pem
notBefore=6 พฤษภาคม 21:25:00 น. 2565 GMT
notAfter=2 พฤษภาคม 21:25:00 น. 2037 GMT
ฉันได้ลองคัดลอกเนื้อหาของ /etc/pki/tls/certs/cloudflare.pem
บนเซิร์ฟเวอร์ ข
โดยตรงกับ /etc/pki/tls/certs/ca-bundle.crt
บนเซิร์ฟเวอร์ ก
แต่ข้อผิดพลาดเดียวกัน
สุดท้ายนี้ ฉันลองเข้าไปที่เซิร์ฟเวอร์ ข
ใน Chrome และดาวน์โหลดไฟล์ crt ที่แสดงไว้ที่ https://cacerts.digicert.com/CloudflareIncECCCA-3.crt
แปลงเป็น pem ด้วย:
opensl x509 - แจ้ง DES - ใน CloudflareIncECCCA-3.crt - ออก outcert.pem
และเพิ่มให้เหมือนกัน ca-bundle.crt
ไฟล์บนเซิร์ฟเวอร์ ก
.
ข้อผิดพลาดเดียวกันเมื่อพยายามเรียกใช้ curl
นี่คือห่วงโซ่ใบรับรองจาก Chrome: