curl --resolve parece não fazer nada

26

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?

    
por tsuraan 01.03.2012 / 01:40

2 respostas

45

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/
    
por 01.03.2012 / 01:52
4

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.

    
por 27.08.2015 / 22:53

Tags