Le --help
sortie pour curl liste un --resolve
option, qui indique
--resolve <Host:port:address> Force resolve of Host:PORT to ADDRESS
Mais je n'ai pas de chance de le faire fonctionner. La commande de base que j'essaie d'exécuter est
curl --resolve foo.example.com:443:localhost https://foo.example.com:443/
et je reçois toujours la réponse Couldn't resolve Host 'foo.example.com'
. Je veux le faire parce que je teste un certificat pour foo.example.com, mais je ne le teste pas sur le serveur réel. Au lieu de cela, je le teste sur une machine factice. Je sais que je peux modifier /etc/hosts
pour que foo.example.com se résout en localhost, mais cette approche curl semble être la façon "correcte" de procéder, si je pouvais le faire fonctionner.
Est-ce que quelqu'un voit ce que je fais mal ici?
Il semble que address
doive être une adresse IP numérique, pas un nom d'hôte.
Essaye ça:
curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
Une aide supplémentaire dans le dépannage:
Assurez-vous de répertorier le bon port pour le protocole: http = 80; https = 443 & etc.
Aussi curl -v
fournira les informations HEADER pour le serveur de réponse qui peuvent être utiles.
$ curl -v --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
## The client request headers prepended by >
> OPTIONS /v1/..
> HOSTS foo.example.com
## The server response prepended by <
< HTTP/1.1 501 Not Implemented
## The html returned
<H1>Unsupported Request</H1>
Fondamentalement, dans ce cas, le OPTIONS HTTP
la méthode n'a pas été implémentée sur le serveur Edge pour le CDN.