Estoy tratando de probar un servidor que funciona normalmente en el navegador web, con la opción openssl s_client, conectándolo directamente mediante openssl devuelve la 400 Solicitud incorrecta:
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: ya traté de poner el encabezado Host: la cuestión es que cuando ejecuto GET, el error ocurre de inmediato y no me da la posibilidad de incluir más encabezados. Reemplazar example.com con mi host ...
GET /index.html ...
que deba configurar una cookie. Probablemente debería tratar con curl
o wget
, y después de la completa solicitud y respuesta, incluyendo el error. De lo contrario, debe proporcionar un nombre de servidor real y una URL para que podamos ejecutar las pruebas.
echo
:echo -e "GET / HTTP/1.1\r\nHost: example.com.br\r\n\r\n" | openssl s_client ...
. Esto\r\n
es significativo porque eso es lo que dice hacer el estándar HTTP. Dos pares de CRLF al final de la solicitud también es importante porque eso es lo que el estándar dice que haga. Consulte también ¿Cómo canaliza "echo" en "openssl"?