0

我有一个单行 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 GMT
服务器:Apache/2.2.20 (Ubuntu)

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

4

2 回答 2

1

这是不可能的,因为它的性质openssl s_client为您提供了在连接端口后面运行的服务的直接和普通输出(在我的示例中为 443,来自我想在使用 SSL 的网络服务器上获取 / 的问题)。

telnet还会为您提供 HTTP 协议的纯输出,并向curl我显示没有标题和使用 HTTPS 但不允许向 Web 服务器发送自写命令的 HTML 站点。

于 2013-02-01T15:50:30.517 回答
0

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

于 2013-09-11T15:03:59.213 回答