我正在尝试使用openssl获取证书,而且它似乎一直在悬挂。我做了很多研究,但并非所有可用的选项似乎都适用于Windows。
openssl s_client -showcerts -connect google.com:443 > cert.txt
我试过这个:
openssl s_client -connect xyz:443 < quit.txt > cert.txt
quit.txt
包含“quit \ n”的位置
来自http://bytes.com/topic/php/answers/8802-automate-openssl-s_client-command-batch-php-script
那不起作用。我还看了Openssl s_clinet -connect scripting. Force quit help
我也试过-prexit
我也研究了这个并且无法使其正常工作: https://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website
我做得很好!我设法做了一些我认为不可能完成的事情,像这个错误这样的错误设法阻止了我暂时 :(
答案 0 :(得分:41)
在Windows上,只需在openssl命令之前输入winpty
即可。因此,例如,您可以创建如下证书:
winpty openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX
答案 1 :(得分:19)
看起来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
答案 2 :(得分:8)
如果在Windows上的mingw64下运行,您可以使用winpty程序正确包装终端
例如在bash下创建别名 别名openssl ='winpty openssl.exe'
然后 openssl s_client -connect blah
应该按预期工作
答案 3 :(得分:2)
由于我没有完全理解的原因,在输入中回显QUIT或退出\ n在我的情况下不起作用。我在Windows 8.1上使用MINGW64和OpenSSL 1.0.2d,我正在使用openssl从bash脚本中的服务器获取证书。但是,只需在后台运行openssl命令并等待一段时间对我有用:
uglify(compress: { unused: true, dead_code: true });