我编写了一个 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 正在等待握手完成。因此,第二个批处理文件不会运行。如何终止第一个批处理文件?
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)
这应该在连接建立后立即关闭。
| 归档时间: |
|
| 查看次数: |
4124 次 |
| 最近记录: |