2

我编写了一个 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 正在等待握手完成。所以,第二个批处理文件没有运行。如何终止第一个批处理文件?

4

2 回答 2

5

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

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

于 2012-05-08T12:55:51.313 回答
0
> echo 'x' |  openssl s_client -showcert -connect google.com:443 > test.cert
于 2013-06-05T03:30:11.873 回答