Załóżmy, że witryna jest zrównoważona pod względem obciążenia między kilkoma serwerami. Chcę uruchomić polecenie, aby sprawdzić, czy działa, np curl DOMAIN.TLD
. Tak więc, aby wyizolować każdy adres IP, określam adres IP ręcznie. Ale wiele stron internetowych, mogą być przechowywane na serwerze, więc nadal stanowią nagłówek hosta, na przykład: curl IP_ADDRESS -H 'Host: DOMAIN.TLD'
. W moim rozumieniu te dwa polecenia tworzą dokładnie to samo żądanie HTTP. Jedyną różnicą jest to, że w tym drugim wyjmuję część wyszukiwania DNS z cURL i robię to ręcznie (popraw mnie, jeśli się mylę).
Jak dotąd dobrze. Ale teraz chcę zrobić to samo dla adresu URL HTTPS. Znów mogłem to przetestować w ten sposób curl https://DOMAIN.TLD
. Ale chcę ręcznie podać adres IP, więc uruchamiam curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD'
. Teraz pojawia się błąd cURL:
curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'.
Mogę oczywiście obejść ten problem, mówiąc cURL, aby nie przejmował się certyfikatem (opcja „-k”), ale nie jest to idealne rozwiązanie.
Czy istnieje sposób odizolowania podłączonego adresu IP od hosta certyfikowanego przez SSL?
Host
nagłówka, więc --resolve
jest to właściwy sposób na przypięcie adresu IP.