2

opensslコマンドを含むバッチファイルを実行するPHPプログラムを作成しました。

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がハンドシェイクの完了を待機しているため、最初のバッチファイルが終了しないことです。したがって、2番目のバッチファイルは実行されません。最初のバッチファイルを終了するにはどうすればよいですか?

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 に答える