使用openssl s_client将HTTP标头静音

时间:2013-02-01 15:40:15

标签: bash automation openssl

我有一个单行bash命令,通过SSL加密的HTTPS连接获取HTML网站:

echo "GET / HTTP/1.1\nHost: www.example.com\n\n" | openssl s_client -connect www.example.com:443 -quiet 2> /dev/null

正在加载网站,但使用HTTP标头:

  

HTTP / 1.1 200 OK
  日期:2013年2月1日星期五,格林尼治标准时间13:15:59   服务器:Apache / 2.2.20(Ubuntu)

更像这样。使用2> /dev/null我可以隐藏错误的SSL证书的输出等等。 我不想采用另一个脚本,因为curl不是我想做的。

2 个答案:

答案 0 :(得分:1)

由于openssl s_client的性质,它不可能为您提供从连接端口后面运行的服务的直接和纯输出(在我的示例中的443来自我想要获取/的问题带SSL的网络服务器。)

telnet还会为您提供HTTP协议的简单输出,curl会向我显示没有标头和HTTPS的HTML网站,但不允许自行编写命令到Web服务器。

答案 1 :(得分:0)

您可以使用expect命令与openssl进行交互。我不确定它会起作用,但值得一试。