Estou tentando testar um servidor que está funcionando normalmente no navegador da web, com a opção openssl s_client, conectando-o diretamente usando o openssl retorna a 400 Solicitação inválida:
openssl s_client -servername example.com -connect example.com:443 -tls1
(some information about the certificate)
GET / HTTP/1.1
(and the error occurs **immediately** - no time to include more headers like Host:)
Importante: Eu já tentei colocar o cabeçalho Host:, o fato é que, quando executo GET, o erro ocorre imediatamente, não me deixando chance de incluir mais cabeçalhos. Substitua example.com pelo meu host ...
GET /index.html ...
ou pode definir um cookie. Você provavelmente deve tentar com curl
ou wget
, e postar o pleno pedido e resposta, incluindo o erro. Caso contrário, você precisará fornecer um nome e um URL reais do servidor para que possamos executar os testes.
echo
:echo -e "GET / HTTP/1.1\r\nHost: example.com.br\r\n\r\n" | openssl s_client ...
. O\r\n
é significativo porque é isso que o padrão HTTP diz para fazer. Dois pares de CRLF no final da solicitação também são significativos porque é isso que o padrão diz para fazer. Veja também Como você canaliza "eco" para "openssl"?