【发布时间】:2015-09-15 13:10:06
【问题描述】:
我正在尝试测试 SSL 服务器并想检查 SSL 服务器是否支持特定密码。
为此,我使用以下命令 = openssl s_client -connect google.com:443 -cipher RC4-SHA 并从 Java 程序中调用它,如下所示,并且运行良好,除了我的 Java 程序永远不会退出,因为启动的 openssl 进程仍然处于打开状态。
Process process = Runtime.getRuntime().exec("openssl s_client -connect google.com:443");
System.out.println("Waiting for process to terminate ...");
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
System.out.println("Exiting ...");
我看到有类似 openssl s_client -connect google.com:443 -verify 0 的东西,但这是错误返回代码,不会获取我要查找的信息,但它确实会停止 openssl 进程。
客户端-服务器握手完成后,有什么方法可以退出 openssl 连接?
【问题讨论】:
-
在等待进程终止之前关闭输出流应该可以解决问题
-
@MrDownVoter:有什么解释吗?太差劲了,你直接投反对票就跑了,还敢解释!!!