如何在openssl中使用完整网页路径发起连接请求?
问题原因分析
openssl s_client的-connect参数仅支持主机名:端口的格式,不能在主机名后拼接URL路径- 你输入的
example.com/foo:443会被openssl整体识别为主机名去做DNS解析,不存在这种格式的域名,所以直接抛出「Name or service not known」的报错
特定页面访问方法
可以访问特定页面,但是需要分两步操作:
- 先正常和目标站点的443端口建立TLS连接,执行命令:
openssl s_client -connect example.com:443 - 等TLS握手完成、终端输出完证书相关信息后,手动输入HTTP请求报文指定你要访问的路径即可,示例如下:
GET /foo HTTP/1.1 Host: example.com Connection: close
注意请求内容末尾需要额外加两个空行,表示HTTP请求头结束,服务端才会响应你的请求。请求发送后你就能拿到
/foo页面对应的响应内容。
内容的提问来源于stack exchange,提问作者Craig Flyr
相关产品推荐
相关产品推荐

