如何在连接后终止OpenSSL s_client

Ken*_*enD 16 windows openssl batch-file

(评论者:我也知道这是在超级用户领域,但如果前一个问题偷偷摸摸... :))

这与此问题非常相似,但在Windows(7/8/Server 2008/2012)环境中:我使用的是OpenSSL的Windows端口.

我在跑

openssl s_client -connect 192.168.0.1:443

从命令提示符,以显示证书信息.但是,openssl之后会等待用户输入; 我可以Ctrl+ C"打破"输出,或者每次只输入几个字符并点击返回,但我需要自动化 - 所有我真正感兴趣的是证书信息.

根据上一个问题,我需要一些方法来终止/关闭连接.不过,我已经试过管道输入文件中,echo荷兰国际集团/ type荷兰国际集团投入进来,但是没有一样能模拟真实用户.任何人都可以告诉我如何在连接后强制openssl退出?

小智 35

您可以使用管道传入字符"Q"来实现所需的效果.这为脚本提供了一个很棒的单线程:

echo "Q" | openssl s_client -connect host:port
Run Code Online (Sandbox Code Playgroud)

  • 除了管道字符之外,您还可以只管道空设备(Windows 上的“< NUL”) (3认同)
  • 我一直都做“回​​声|” openssl s_client ...`,它对我来说从来没有失败过。看来不需要“Q”了。 (2认同)

JSA*_*son 7

在空行开头输入字母“Q”将结束活动连接。我见过 s_client 进入不执行任何操作的状态,但这是退出会话的记录方法。

如果您想在批处理模式下执行此操作,只需创建一个文本文件,其中包含字母“Q”,后跟回车符,并将其定向到命令末尾,如下所示:

openssl s_client -connect host:port < Q.txt
Run Code Online (Sandbox Code Playgroud)

我尝试过这个并且有效。