我正在尝试使用 OpenSSL 的 GnuWin32 版本从多个 WebSphere MQ 队列管理器中获取证书。所有尝试都会导致 OpenSSL 保持连接打开,直到我手动按 ENTER。
我尝试按照这个 SO question和这个 SO question将各种文本输入命令,但没有运气。
理想情况下,一旦输入文件或管道文本到达 EOF,OpenSSL 就会关闭连接。
例子:
echo QUIT | openssl s_client -connect qmgrhost:1414 -showcerts
openssl s_client -connect qmgrhost:1414 -showcerts < responsefile.txt
使用该QUIT
命令的示例似乎适用于其他 SO 问题,因为它们正在访问 HTTP 服务器。由于在我的情况下这是 WMQ,因此连接握手是不同的,并且发送QUIT
(或我尝试过的其他任何东西)不会让它关闭连接。我可能会向它提供一个巨大的文件,直到 QMgr 阻塞并终止连接,但我试图对服务器尽可能礼貌。当前从键盘提供 ENTER 的方法会导致每个连接上的 FDC 转储,引发各种警报并使 Tivoli 家伙生我的气。
所以最好的情况是 QMgr 解释为优雅拒绝并关闭连接的字符串或十六进制值。第二个最佳情况是允许脚本化的任何方法,我们将接受 FDC 文件作为自动化此功能的成本。
更新:2013 年 5 月 31 日
我已经搬到了 AIX,它完美地工作。s_client 在脚本中运行时在建立连接后立即挂断并将换行符输入其中。但是,我仍然希望有一个适用于 Windows 的解决方案。有谁知道 Cygwin 版本是否有效或有同样的问题?是 Windows 信号/POSIX 问题吗?代码错误?