Angenommen, eine Website ist auf mehrere Server verteilt. Ich möchte einen Befehl ausführen, um zu testen, ob er funktioniert, z curl DOMAIN.TLD
. Um jede IP-Adresse zu isolieren, gebe ich die IP manuell an. Aber viele Websites auf dem Server gehostet werden, so biete ich noch einen Host - Header, wie folgt aus : curl IP_ADDRESS -H 'Host: DOMAIN.TLD'
. Nach meinem Verständnis erzeugen diese beiden Befehle genau dieselbe HTTP-Anforderung. Der einzige Unterschied ist, dass ich in letzterem den DNS-Lookup-Teil aus cURL herausnehme und dies manuell mache (bitte korrigieren Sie mich, wenn ich falsch liege).
Alles soweit gut. Aber jetzt möchte ich dasselbe für eine HTTPS-URL tun. Wieder konnte ich es so testen curl https://DOMAIN.TLD
. Aber ich möchte die IP manuell angeben, also starte ich curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD'
. Jetzt bekomme ich einen cURL-Fehler:
curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'.
Ich kann das natürlich umgehen, indem ich cURL sage, dass das Zertifikat nicht wichtig ist (die Option "-k"), aber es ist nicht ideal.
Gibt es eine Möglichkeit, die IP-Adresse, mit der die Verbindung hergestellt wird, von dem durch SSL zertifizierten Host zu trennen?
Host
anzeigen, bevor er auf den Header zugreifen kann. Dies --resolve
ist der richtige Weg, um eine IP-Adresse zu fixieren.