Si on veut curl une ressource sur l'ip (car pas de résolution, pas envie de modifier /etc/hosts..)
On va utiliser -H pour rajouter un header host et arriver sur le bon virtualhost :
curl -H 'Host: www.foo.com' http://192.168.1.1/
Si la ressource est en https, ça ne passe pas :
curl -H 'Host: www.foo.com' https://192.168.1.1/
curl: (51) SSL: certificate subject name (*.foo.com) does not match target host name '192.168.1.1'
Car le SNI hello se fait avec l'host dans l'url (192.168.1.1) et non pas avec le Header Host
Un workaround est d'utiliser l'option --resolve
curl --resolve www.foo.com:192.168.1.1 https://www.foo.com
On peut aussi utiliser --insecure pour ignore l'erreur mais on ne valide pas que le certificat est ok :
curl --insecure -H 'Host: www.foo.com' http://192.168.1.1/