2012-02-26 54 views
15

我想使用openssl来获得证书,并且它似乎保持挂起。我做了大量的研究,但并不是所有的可用选项都可以在Windows上运行。openssl挂起并不退出

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

这并不工作 “退出\ n” 。我又看了看Openssl s_clinet -connect scripting. Force quit help

我也曾尝试-prexit

我也研究过这也并不能得到它的工作: https://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website

我在做这么好!我设法做了一些我认为不可能的事情,像这个bug一样简单的事情设法阻止我暂时 :(

+1

编辑基本的拼写和语法,试图使它看起来像你把一些精力来问这个问题。将新版本重新定位到ServerFault,在那里您更可能得到答案。 – 2012-02-26 03:02:24

+0

检出http:// stackoverflow。com/questions/16823068/gnuwin32-openssl -s-client-conn-to-websphere-mq-server-not-closing-at -eof-hangs -WordScript中的SendKeys(“\ n”)可以使OpenSSL退出, EOF不能。 – clacke 2013-10-13 07:37:42

回答

16

它看起来像一些Windows的OpenSSL发行版期望一个额外的按键,独立的标准输入。Quit.txt得到正确的管道输送到OpenSSL的STDIN(服务器接收QUIT命令),但没有任何反应,直到按下任意键。

此问题不会在Cygwin's OpenSSL版本的存在。的Cygwin不幸的是基本安装需要大约100 MB磁盘空间,但是您可以尝试仅提取openssl.exe和所需的库。

这种方法的工作原理:

echo QUIT | c:\cygwin\bin\openssl.exe s_client -showcerts -connect google.com:443 > cert.txt 
+1

谢谢你的MBU。它的工作,这是我需要复制 cygcrypto-0.9.8.dll cyggcc_s-1.DLL cygssl-0.9.8.dll cygwin1.dll cygz.dll 发现,serial.bat文件列表 libeay32.dll openssl.exe ssleay32.dll – Adiboy 2012-02-28 01:29:20

+1

不仅在Windows上,而且在Linux上,通过输入到命令中的echo QUIT解决了停滞输出问题。 – 2014-11-04 17:17:38

1

的原因,我不明白completeley,呼应退出或退出\ n到输入我的情况下,没有工作。我在Windows 8.1上使用MINGW64和OpenSSL 1.0.2d,我使用openssl从bash脚本中的服务器获取证书。然而,仅仅运行在后台OpenSSL的命令,并等待一个位为我工作:

#!/bin/bash 

openssl s_client -connect my.server.com:443 -showcerts > output.txt 2>/dev/null & 
sleep 2 
6

如果在Windows下的mingw64运行,就可以使用winpty程序正确包裹终端

bash下

例如创建别名 别名的OpenSSL = 'winpty openssl.exe'

然后 的OpenSSL的s_client.First -connect等等

应该按预期工作

+7

或者只是在openssl之前输入winpty。这对我来说很有用。谢谢。 – smoore4 2017-02-09 00:35:23

4

在windows上,只需在openssl命令之前键入winpty即可。因此,举例来说,你可以创建一个证书,像这样:

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