मान लीजिए कि एक वेबसाइट कई सर्वरों के बीच लोड-संतुलित है। मैं यह परीक्षण करने के लिए एक कमांड चलाना चाहता हूं कि क्या यह काम कर रहा है, जैसे कि curl DOMAIN.TLD
। इसलिए, प्रत्येक आईपी पते को अलग करने के लिए, मैं मैन्युअल रूप से आईपी निर्दिष्ट करता हूं। लेकिन कई वेबसाइटों को सर्वर पर होस्ट किया जा सकता है, इसलिए मैं अभी भी एक होस्ट हेडर प्रदान करता हूं, जैसे curl IP_ADDRESS -H 'Host: DOMAIN.TLD'
:। मेरी समझ में, ये दोनों कमांड एक ही HTTP अनुरोध बनाती हैं। अंतर केवल इतना है कि बाद वाले में मैं cURL से DNS लुकअप भाग को निकालता हूं और इसे मैन्युअल रूप से करता हूं (कृपया मुझे गलत समझें तो सही करें)।
अभी तक सब ठीक है। लेकिन अब मैं HTTPS url के लिए भी यही करना चाहता हूं। फिर, मैं इसे इस तरह से परख सकता था curl https://DOMAIN.TLD
। लेकिन मैं आईपी को मैन्युअल रूप से निर्दिष्ट करना चाहता हूं, इसलिए मैं चलाता हूं 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'.
मैं निश्चित रूप से प्रमाणपत्र ("-k" विकल्प) की परवाह नहीं करने के बारे में बताकर इसे प्राप्त कर सकता हूं, लेकिन यह आदर्श नहीं है।
क्या एसएसएल द्वारा प्रमाणित किए जा रहे होस्ट से आईपी पते को अलग करने का एक तरीका है?
Host
हेडर तक पहुंचने से पहले सर्वर को प्रमाणपत्र दिखाना होगा , इसलिए --resolve
आईपी एड्रेस को पिन करने का सही तरीका है।