Let's say a website is load-balanced between several servers. I want to run a command to test whether it's working, such as
curl DOMAIN.TLD. So, to isolate each IP address, I specify the IP manually. But many websites may be hosted on the server, so I still provide a host header, like this:
curl IP_ADDRESS -H 'Host: DOMAIN.TLD'. In my understanding, these two commands create the exact same HTTP request. The only difference is that in the latter one I take out the DNS lookup part from cURL and do this manually (please correct me if I'm wrong).
All well so far. But now I want to do the same for an HTTPS url. Again, I could test it like this
curl https://DOMAIN.TLD. But I want to specify the IP manually, so I run
curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD'. Now I get a cURL error:
curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'.
I can of course get around this by telling cURL not to care about the certificate (the "-k" option) but it's not ideal.
Is there a way to isolate the IP address being connected to from the host being certified by SSL?
--resolveis the right way to pin an IP address.