我正在尝试使用openssl s_client选项测试在Web浏览器中正常工作的服务器,使用openssl直接连接它会返回400错误请求:
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”?