- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 GnuWin32 版本的 OpenSSL 从多个 WebSphere MQ 队列管理器获取证书。所有尝试都会导致 OpenSSL 保持连接打开,直到我手动按下 ENTER。
我尝试将各种文本输入命令 as per this SO question和 this SO question , 但没有运气。
理想情况下,OpenSSL 会在输入文件或管道文本达到 EOF 时关闭连接。
例子:
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 问题吗?代码错误?
最佳答案
这个问题似乎与批处理文件和 openssl.exe 程序之间的同步问题有关。我需要您的合作才能进行一些测试并报告结果。下面是用于第一次测试的 Batch-JScript 混合脚本。 JScript 部分有两个部分;第一个 WScript.Stdout.WriteLine("QUIT");
完全等同于 echo QUIT
批处理命令。第二部分(两行)类似,但它使用“QUIT”和 Enter 键加载键盘缓冲区,而不是通过 STDOUT 发送字符串。
我需要您对 JScript 代码的两个部分进行测试并报告结果(双斜杠 //
将行的其余部分标记为注释)。如果幸运的话,openssl.exe
程序将以 Sendkeys
方法结束;如果没有,请尝试通过 STDOUT
发送“QUIT”字符串,然后使用 Sendkeys
键入回车键。如果 openssl.exe
程序在返回所需信息之前终止,那么问题几乎就解决了,因为在这种情况下,我们可以同步发送 Enter 键,直到从 收到所需信息为止openssl.exe
.
将以下内容保存为 .bat
文件。尝试一下,然后注释掉 Wscript
行,取消注释 WshShell
行,然后再试一次。
@if (@CodeSection == @Batch) @then
:: The first line above is...
:: in Batch: a valid IF command that does nothing.
:: in JScript: a conditional compilation IF statemente that is false,
:: so this section is omitted until next "at-sign end".
@echo off
CScript //nologo //E:JScript "%~F0" | openssl s_client -connect qmgrhost:1414 -showcerts
goto :EOF
@end
// JScript section
WScript.Stdout.WriteLine("QUIT");
// var WshShell = WScript.CreateObject("WScript.Shell");
// WshShell.SendKeys("QUIT{ENTER}");
您也可以尝试使用 String.fromCharCode(26)
在 WriteLine
或 Sendkeys
中生成 Ctrl-Z (EOF) 字符> 方法;例如:
WshShell.SendKeys("QUIT{ENTER}" + String.fromCharCode(26));
关于batch-file - GnuWin32 openssl s_client 连接到 WebSphere MQ 服务器未在 EOF 关闭,挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16823068/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!