如何从批处理文件中终止openssl握手?

时间:2012-05-01 06:31:52

标签: openssl

我编写了一个PHP程序来执行包含openssl命令的批处理文件:

openssl s_client -showcerts -connect google.com:443 >test.cert

获取此批处理文件的输出,即test.cert,我运行另一个具有以下命令的批处理文件:

openssl x509 -noout -in test.cert -dates >date.txt
openssl x509 -noout -in test.cert -issuer >issuer.txt

但问题是第一批文件没有终止,因为cmd正在等待握手完成。因此,第二个批处理文件不会运行。如何终止第一个批处理文件?

2 个答案:

答案 0 :(得分:4)

openssl s_client等待输入,因此您必须终止连接而不是握手。 最简单的方法是改变

 openssl s_client -showcert -connect google.com:443 > test.cert

 openssl s_client -showcert -connect google.com:443 < /dev/null > test.cert

这应该在建立后立即关闭连接。

答案 1 :(得分:0)

> echo 'x' |  openssl s_client -showcert -connect google.com:443 > test.cert