我有一个单行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不是我想做的。
答案 0 :(得分:1)
由于openssl s_client
的性质,它不可能为您提供从连接端口后面运行的服务的直接和纯输出(在我的示例中的443来自我想要获取/的问题带SSL的网络服务器。)
telnet
还会为您提供HTTP协议的简单输出,curl
会向我显示没有标头和HTTPS的HTML网站,但不允许自行编写命令到Web服务器。
答案 1 :(得分:0)
您可以使用expect命令与openssl进行交互。我不确定它会起作用,但值得一试。