cmd - para - wget portable
openssl cuelga y no sale (4)
En Windows, simplemente escribiendo winpty
antes de que su comando openssl haga el truco. Entonces, por ejemplo, puedes crear un certificado así:
winpty openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX
Estoy intentando usar openssl para obtener un certificado, y parece que sigue colgando. He investigado mucho, pero no todas las opciones disponibles parecen funcionar en Windows.
openssl s_client -showcerts -connect google.com:443 > cert.txt
He intentado esto:
openssl s_client -connect xyz:443 < quit.txt > cert.txt
Donde quit.txt
contiene "quit / n" de http://bytes.com/topic/php/answers/8802-automate-openssl-s_client-command-batch-php-script
Eso no funcionó. También miré las secuencias de comandos de Openssl s_clinet -connect. Forzar la ayuda para dejar de fumar
También he probado -prexit
También he investigado esto y no puedo hacerlo funcionar: https://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website
¡Me estaba yendo tan bien! Logré hacer algo que pensé que sería imposible y una cosa tan simple como este error logró detenerme por el momento :(
Parece que algunas distribuciones de OpenSSL para Windows esperan una pulsación de tecla adicional, independiente de la entrada estándar. Quit.txt se canaliza correctamente en STDIN de openssl (el servidor recibe el comando QUIT), pero no sucede nada hasta que se presiona una tecla.
Este problema no existe en Cygwin''s versión de OpenSSL de Cygwin''s . Desafortunadamente, la instalación básica de Cygwin toma aproximadamente 100 MB de espacio en disco, pero puede intentar extraer solo openssl.exe y las bibliotecas necesarias.
Este método funciona:
echo QUIT | c:/cygwin/bin/openssl.exe s_client -showcerts -connect google.com:443 > cert.txt
Por razones que no entiendo completamente, el eco de SALIR o de salir en la entrada no funcionó en mi caso. Estoy usando MINGW64 con OpenSSL 1.0.2d en Windows 8.1, y estoy usando openssl para obtener certificados de servidores dentro de un script de bash. Sin embargo, solo ejecutando el comando openssl en segundo plano y esperando un poco funcionó para mí:
#!/bin/bash
openssl s_client -connect my.server.com:443 -showcerts > output.txt 2>/dev/null &
sleep 2
Si se ejecuta bajo mingw64 en Windows, puede usar el programa winpty para envolver correctamente el terminal
Por ejemplo, creando alias bajo bash alias openssl = ''winpty openssl.exe''
Entonces openssl s_client -connect blah
Debería funcionar como se espera