Ich versuche, einen Server zu testen, der im Webbrowser normal funktioniert, mit der Option openssl s_client. Wenn ich ihn direkt mit openssl verbinde, wird die 400 Bad Request zurückgegeben:
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:)
Wichtig: Ich habe bereits versucht, den Host: -Header zu setzen. Wenn ich GET ausführe, tritt der Fehler sofort auf, sodass ich keine Chance mehr habe, weitere Header einzuschließen. Ersetzen Sie example.com durch meinen Host ...
GET /index.html ...
Sie ein Cookie setzen oder ein Cookie setzen. Sie sollten es wahrscheinlich mit curl
oder versuchen wget
und die vollständige Anfrage und Antwort einschließlich des Fehlers veröffentlichen. Andernfalls müssen Sie einen echten Servernamen und eine URL angeben, damit wir die Tests ausführen können.
echo
:echo -e "GET / HTTP/1.1\r\nHost: example.com.br\r\n\r\n" | openssl s_client ...
. Das\r\n
ist wichtig, weil der HTTP-Standard dies vorschreibt. Zwei CRLF-Paare am Ende der Anforderung sind ebenfalls von Bedeutung, da der Standard dies vorschreibt. Siehe auch Wie leitet man "Echo" in "openssl"?