J'essaie de tester un serveur qui fonctionne normalement dans le navigateur Web, avec l'option openssl s_client, le connecter directement en utilisant openssl renvoie la 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:)
Important: J'ai déjà essayé de mettre l'en-tête Host:, le problème est que lorsque j'exécute GET, l'erreur se produit immédiatement, ne me laissant aucune chance d'inclure plus d'en-têtes. Remplacez example.com par mon hôte ...
GET /index.html ...
ou vous devrez peut-être définir un cookie. Vous devriez probablement essayer avec curl
ou wget
, et publier la demande et la réponse complètes , y compris l'erreur. Sinon, vous devez fournir un vrai nom de serveur et une URL afin que nous puissions exécuter les tests.
echo
:echo -e "GET / HTTP/1.1\r\nHost: example.com.br\r\n\r\n" | openssl s_client ...
. C'est\r\n
important parce que c'est ce que la norme HTTP dit de faire. Deux paires CRLF à la fin de la demande sont également importantes car c'est ce que la norme dit de faire. Voir aussi Comment canaliser "echo" dans "openssl"?