我编写了一个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正在等待握手完成。因此,第二个批处理文件不会运行。如何终止第一个批处理文件?
答案 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