Digamos que um site tenha balanceamento de carga entre vários servidores. Quero executar um comando para testar se está funcionando, como curl DOMAIN.TLD. Portanto, para isolar cada endereço IP, eu especifico o IP manualmente. Mas muitos sites podem ser hospedados no servidor, então eu ainda fornecer um cabeçalho de host, como este: curl IP_ADDRESS -H 'Host: DOMAIN.TLD'. No meu entendimento, esses dois comandos criam exatamente a mesma solicitação HTTP. A única diferença é que, no último, retiro a parte de pesquisa de DNS do cURL e faço isso manualmente (por favor, corrija-me se estiver errado).
Tudo bem até agora. Mas agora eu quero fazer o mesmo para um URL HTTPS. Mais uma vez, eu poderia testá-lo assim curl https://DOMAIN.TLD. Mas eu quero especificar o IP manualmente, então eu corro curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD'. Agora, recebo um erro cURL:
curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'.
É claro que posso contornar isso dizendo ao cURL para não se importar com o certificado (a opção "-k"), mas não é o ideal.
Existe uma maneira de isolar o endereço IP que está sendo conectado do host que está sendo certificado por SSL?
Hostcabeçalho, assim --resolveé a maneira correta de fixar um endereço IP.