Parece que o address
precisa ser um endereço IP numérico, não um nome de host.
Tente isto:
curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
A saída --help
para curl lista uma opção --resolve
, que declara
--resolve <host:port:address> Force resolve of HOST:PORT to ADDRESS
Eu não estou tendo sorte em fazer isso funcionar. O comando básico que estou tentando executar é
curl --resolve foo.example.com:443:localhost https://foo.example.com:443/
e continuo recebendo a resposta Couldn't resolve host 'foo.example.com'
. Eu quero fazer isso porque estou testando um certificado para foo.example.com, mas não estou testando no servidor real. Em vez disso, estou testando em uma máquina fictícia. Eu sei que posso editar /etc/hosts
para que foo.example.com resolva para localhost, mas essa abordagem de curl parece que seria o caminho "correto", se eu conseguisse fazê-lo funcionar.
Alguém vê o que estou fazendo errado aqui?
Alguma ajuda adicional na solução de problemas:
Verifique se você está ouvindo a porta certa para o protocolo: http = 80; https = 443 & etc
O curl -v também fornecerá as informações do HEADER para o servidor de resposta, o que pode ser útil.
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>
Basicamente, neste caso, o método HTTP OPTIONS não foi implementado no servidor de borda para o CDN.