สมมติว่าเว็บไซต์สมดุลระหว่างเซิร์ฟเวอร์หลายเครื่อง curl DOMAIN.TLD
ฉันต้องการที่จะเรียกใช้คำสั่งเพื่อทดสอบว่ามันทำงานเช่น ดังนั้นเพื่อแยกที่อยู่ IP แต่ละอันฉันต้องระบุ IP ด้วยตนเอง curl IP_ADDRESS -H 'Host: DOMAIN.TLD'
แต่เว็บไซต์ที่หลายคนอาจจะโฮสต์บนเซิร์ฟเวอร์ดังนั้นฉันยังคงให้ส่วนหัวของโฮสต์เช่นนี้ ในความเข้าใจของฉันทั้งสองคำสั่งสร้างคำขอ HTTP ที่แน่นอนเหมือนกัน ข้อแตกต่างเพียงอย่างเดียวคือในส่วนหลังฉันใช้ส่วนการค้นหา DNS จาก cURL และทำสิ่งนี้ด้วยตนเอง (โปรดแก้ไขฉันหากฉันผิด)
ทุกอย่างดี แต่ตอนนี้ฉันต้องการทำเช่นเดียวกันสำหรับ URL ของ HTTPS ฉันสามารถทดสอบมันได้เช่นนี้curl https://DOMAIN.TLD
อีกครั้ง แต่ผมต้องการระบุ IP curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD'
ด้วยตนเองดังนั้นฉันทำงาน ตอนนี้ฉันได้รับข้อผิดพลาด cURL:
curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'.
แน่นอนฉันสามารถหลีกเลี่ยงปัญหานี้ได้โดยบอก cURL ว่าไม่ต้องสนใจใบรับรอง (ตัวเลือก "-k") แต่มันก็ไม่เหมาะ
มีวิธีแยกที่อยู่ IP ที่กำลังเชื่อมต่อจากโฮสต์ที่ได้รับการรับรองโดย SSL หรือไม่
Host
ส่วนหัวได้ดังนั้นจึง--resolve
เป็นวิธีที่ถูกต้องในการตรึงที่อยู่ IP