Я пытаюсь протестировать сервер, который нормально работает в веб-браузере, с опцией openssl s_client, подключение его напрямую с помощью openssl возвращает 400 Bad Request:
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:)
Важно: я уже пытался поместить заголовок Host: дело в том, что когда я запускаю GET, сразу же возникает ошибка, и у меня нет шансов включить больше заголовков. Замените example.com моим хостом ...
GET /index.html ...
или вам может понадобиться установить cookie. Вероятно, вам следует попробовать с помощью curl
или wget
и опубликовать полный запрос и ответ, включая ошибку. В противном случае вы должны предоставить реальное имя сервера и URL, чтобы мы могли запустить тесты.
echo
:echo -e "GET / HTTP/1.1\r\nHost: example.com.br\r\n\r\n" | openssl s_client ...
. Это\r\n
важно, потому что так говорит стандарт HTTP. Две пары CRLF в конце запроса также важны, потому что это то, что говорит стандарт. Также посмотрите, как вы отправляете «echo» в «openssl»?