悬挂和不退出

我试图用 openssl 来获得证书,它似乎一直挂着。我做了很多研究,但并非所有可用的选项似乎都适用于 Windows。

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

我试过这个:

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

其中 quit.txt包含“退出 n” 译自: 美国《 http://bytes.com/topic/php/answers/8802-automate-openssl-s_client-command-batch-php-script 》杂志网站(href = “ http://bytes.com/subject/php/answer/8802-auto-openssl-s _ client-command-batch-php-script”rel = “ norefrer”)

这没有工作。我也看了 连接脚本。强制退出帮助

我也试过 -prexit

我也研究过这个问题,但无法解决: Https://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website

我本来做得很好!我设法做了一件我认为是不可能的事情,一个像这样简单的错误设法阻止我 暂时的: (

51458 次浏览

看起来一些 OpenSSL 发行版在 Windows 中期待一个额外的按键,独立于标准输入。Txt 正确地通过管道连接到 openssl 的 STDIN (服务器接收 QUIT 命令) ,但是在按下任何键之前什么都不会发生。

这个问题在 OpenSSL 的 Cygwin 的版本中不存在。不幸的是,基本安装 Cygwin 需要大约100MB 的磁盘空间,但是您可以尝试只提取 openssl.exe 和必需的库。

这种方法有效:

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

由于我不完全理解的原因,在我的情况下,在输入中重复 QUIT 或者退出 n 不起作用。我在 Windows 8.1上使用 MINGW64和 OpenSSL 1.0.2 d,并使用 OpenSSL 从 bash 脚本中的服务器获得证书。但是,只需在后台运行 openssl 命令并稍微等一下就可以了:

#!/bin/bash


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

如果在 windows 上运行 minw64,可以使用 winpty 程序正确地包装终端

在 bash 下创建别名 Alias openssl = ‘ winpty openssl.exe’

然后 Openssl _ client-connect 等等

应该没问题

在窗口上,只需在 openssl 命令之前键入 winpty即可。因此,例如,您可以创建这样的证书:

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