70

opensslを使用して証明書を取得しようとしていますが、ハングし続けているようです。私は多くの調査を行いましたが、利用可能なオプションのすべてがWindowsで機能するわけではないようです。

openssl s_client -showcerts -connect google.com:443 > cert.txt

私はこれを試しました:

openssl s_client -connect xyz:443 < quit.txt > cert.txt

http://bytes.com/topic/php/answers/8802-automate-openssl-s_client-command-batch-php-scriptquit.txtの「quit\n」が含まれている場所

それはうまくいきませんでした。また、Openssls_clinet-connectスクリプトも確認しました。ヘルプを強制終了

私も試しました -prexit

私もこれを調べましたが、機能させることができません: https ://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website

私はとてもうまくやっていた!私はなんとか不可能だと思った何かをすることができました、そしてこのバグのような単純なことは当分の間私を止めることができました:(

4

4 に答える 4

153

Windowsでは、winptyopensslコマンドの前に入力するだけでうまくいきます。したがって、たとえば、次のような証明書を作成できます。

winpty openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX

于 2017-08-17T10:38:44.593 に答える
27

Windows用の一部のOpenSSLディストリビューションは、標準入力とは関係なく、追加のキー押下を期待しているようです。Quit.txtはopensslのSTDINに正しくパイプされます(サーバーはQUITコマンドを受信します)が、いずれかのキーを押すまで何も起こりません。

この問題は、 CygwinのバージョンのOpenSSLには存在しません。残念ながら、Cygwinの基本インストールには約100 MBのディスク容量が必要ですが、openssl.exeと必要なライブラリのみを抽出することができます。

この方法は機能します:

echo QUIT | c:\cygwin\bin\openssl.exe s_client -showcerts -connect google.com:443 > cert.txt
于 2012-02-27T20:27:22.387 に答える
10

Windowsでmingw64で実行している場合は、winptyプログラムを使用してターミナルを正しくラップできます。

たとえば、bashエイリアスopenssl='winptyopenssl.exe'の下にエイリアスを作成します

次に、openssl s_client -connectblah

期待どおりに機能するはずです

于 2016-02-11T14:43:04.817 に答える
3

私が完全に理解していない理由で、入力にQUITまたはquit\nをエコーすることは私の場合は機能しませんでした。私はWindows8.1でOpenSSL1.0.2dとともにMINGW64を使用しており、opensslを使用してbashスクリプト内のサーバーから証明書を取得しています。ただし、opensslコマンドをバックグラウンドで実行し、少し待つだけでうまくいきました。

#!/bin/bash

openssl s_client -connect my.server.com:443 -showcerts > output.txt 2>/dev/null &
sleep 2
于 2015-11-12T09:16:44.853 に答える