Opensslを使用して証明書を取得しようとしていますが、ハングし続けているようです。私は多くの調査を行いましたが、利用可能なオプションのすべてがWindowsで機能するようには見えません。
openssl s_client -showcerts -connect google.com:443 > cert.txt
私はこれを試しました:
openssl s_client -connect xyz:443 < quit.txt > cert.txt
どこ quit.txt
には http://bytes.com/topic/php/answers/8802-automate-openssl-s_client-command-batch-php-script の「quit\n」が含まれています
それはうまくいきませんでした。 Openssl s_clinet -connect scripting。Force quit help も確認しました
私も試しました-prexit
私もこれを調べましたが、機能させることができません: https://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website
元気でした!私は無理だと思ったことをなんとか実行し、このバグのような単純なことで、とりあえず私を止めることができました:(
Windows向けの一部のOpenSSLディストリビューションは、標準入力に関係なく、追加のキープレスを期待しているようです。 Quit.txtはopensslのSTDIN(サーバーはQUITコマンドを受信します)に正しくパイプされますが、キーを押すまで何も起こりません。
この問題は、OpenSSLの Cygwin's バージョンには存在しません。残念ながら、Cygwinの基本インストールには約100 MBのディスク容量が必要ですが、openssl.exeと必要なライブラリのみを抽出することもできます。
この方法は機能します:
echo QUIT | c:\cygwin\bin\openssl.exe s_client -showcerts -connect google.com:443 > cert.txt
Windowsでは、opensslコマンドでうまくいく前にwinpty
と入力するだけです。したがって、たとえば、次のような証明書を作成できます。
winpty openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX
Windowsのmingw64で実行している場合は、winptyプログラムを使用して端末を正しくラップできます。
たとえば、bashエイリアスopenssl = 'winpty openssl.exe'の下にエイリアスを作成します
次に、openssl s_client -connect blah
期待どおりに動作するはずです
完全に理解できない理由により、QUITまたはquitの入力へのエコーは私の場合は機能しませんでした。 Windows 8.1でOpenSSL 1.0.2dを使用してMINGW64を使用しています。opensslを使用して、bashスクリプト内のサーバーから証明書を取得しています。ただし、opensslコマンドをバックグラウンドで実行し、少し待つだけでうまくいきました。
#!/bin/bash
openssl s_client -connect my.server.com:443 -showcerts > output.txt 2>/dev/null &
sleep 2