2012-05-01 73 views
1

我已經寫了一個PHP程序來執行它包含的OpenSSL命令的批處理文件:如何終止批處理文件中的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正在等待握手完成。所以,第二批文件不運行。如何終止第一批文件?

回答

3

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 

這應該關閉它成立之後的連接。

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

'true | openssl s_client'也可以 – sanmai

相關問題