【问题标题】:How can I force quit inside "openssl s_client -connect"?如何在“openssl s_client -connect”中强制退出?
【发布时间】:2011-03-01 22:02:34
【问题描述】:

我正在编写一个调用该命令的脚本。

openssl s_client -showcerts -connect server:9999 > out.pem -key key.pem -cert cert.pem -pass pass:password

但它显示输出,我尝试添加 -quiet 但没有运气。有没有办法我可以得到它,这样它就不会向控制台报告。如果我在终端中运行命令,我必须输入 exit 才能退出连接。

编辑

我希望它在我的脚本中自动退出。有没有办法做到这一点?

【问题讨论】:

  • 是控制台有输出的问题,还是调用没有自动退出的问题?
  • 它不会自动调用exit,有没有办法让它也这样?
  • 我猜openssl s_client 正在按顺序执行它的虚线命令(在这种情况下首先是-showcerts,然后是-connect X)。我找了一个-quit 添加到最后,但在帮助中找不到。

标签: scripting openssl connect


【解决方案1】:

对于自动退出部分,您可以这样做:

echo | openssl s_client -connect www.google.com:443

【讨论】:

  • 这似乎工作得很好。有谁知道它为什么起作用?它采用了什么 shell 技巧?
  • 这不是 shell 技巧。 openssl s_client 正在等待用户输入。它等待 CR/LF(回车键)。输入openssl 的“回声”模拟了这一点。收到后,openssl 退出。
  • 你也可以openssl s_client -connect www.google.com:443 </dev/null 结果一样
【解决方案2】:

输出可能被发送到标准错误(而不是标准输出)。如果您使用>& 进行重定向,它应该可以工作。

【讨论】:

  • OK 停止了输出,但是有没有办法让它也自动退出?
  • @Matt:我不确定,目前没有必要的证书来测试它。但也许您可以更改命令以使用适当的命令从文件重定向输入:< inputresponse.txt
  • 这可以工作那个命令叫什么?我可以使用 sting 代替文件吗?
  • @Matt:如果输入文件为空,它可能会简单地工作。或者如果a line begins with a Q apparently.
猜你喜欢
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
相关资源
最近更新 更多