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

Vai*_*ddy 2 openssl

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

openssl s_client -showcerts -connect google.com:443 >test.cert
Run Code Online (Sandbox Code Playgroud)

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

openssl x509 -noout -in test.cert -dates >date.txt
openssl x509 -noout -in test.cert -issuer >issuer.txt
Run Code Online (Sandbox Code Playgroud)

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

dwa*_*ter 5

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

 openssl s_client -showcert -connect google.com:443 > test.cert
Run Code Online (Sandbox Code Playgroud)

 openssl s_client -showcert -connect google.com:443 < /dev/null > test.cert
Run Code Online (Sandbox Code Playgroud)

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