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?
Host
cabeçalho, assim --resolve
é a maneira correta de fixar um endereço IP.