windows 如何在连接后终止OpenSSL s_client

lstz6jyr  于 2023-05-19  发布在  Windows
关注(0)|答案(2)|浏览(270)

(评论者:我也知道这是误入超级用户的领域,但如果前一个问题偷偷通过...:))
这与this question非常相似,但在Windows(7/8/Server 2008/2012)环境中:我正在使用OpenSSL的Windows端口。
我在跑
openssl s_client -connect 192.168.0.1:443
从命令提示符下,以显示证书信息。但是,OpenSSL会在之后等待用户输入;我可以使用Ctrl+C来“中断”输出,或者只输入几个字符并按回车键,但我需要自动执行此操作-我真正感兴趣的是证书信息。
根据上一个问题,我需要一些方法来终止/关闭连接。然而,我尝试过输入文件,echo ing/type ing输入到混合中,似乎没有什么能模拟真实的的用户。谁能告诉我如何强制openssl连接后退出?

xxls0lw8

xxls0lw81#

您可以通过使用管道传递字符“Q”来实现所需的效果。这是一个很好的脚本一行程序:

echo "Q" | openssl s_client -connect host:port

如果你正在使用一个足够新的BASH版本,你也可以使用三重小于重定向来代替管道(有时管道是不可用的,因为它在stdin/stdout上操作):

openssl s_client -connect host:port <<< "Q"
px9o7tmv

px9o7tmv2#

在空行的开头输入字母“Q”将结束活动连接。我见过s_client进入这样的状态,它什么也不做,但这是退出会话的文档方法。
如果你想在批处理模式下执行此操作,只需创建一个带有字母'Q'的文本文件,后跟一个回车符,并将其引导到命令的末尾,如下所示:

openssl s_client -connect host:port < Q.txt

我试过这个,它工作。

相关问题