openssl зависает и не выходит
Я пытаюсь использовать openssl для получения сертификата, и, похоже, он продолжает висеть. Я провел много исследований, но не все доступные параметры, похоже, работают на Windows.
openssl s_client -showcerts -connect google.com:443 > cert.txt
Я попытался это:
openssl s_client -connect xyz:443 < quit.txt > cert.txt
здесь quit.txt
содержит " quitn"
от http://bytes.com/topic/php/answers/8802-automate-openssl-s_client-command-batch-php-script
это не работа. Я тоже посмотрел на Openssl s_clinet-подключение описание. Force quit help
Я также пробовал -prexit
Я тоже смотрел на это и не могу заставить его работать: https://serverfault.com/questions/139728/how-to-download-ssl-certificate-from-a-website
у меня все было так хорошо! Мне удалось сделать то, что я думал, будет невозможно, и простая вещь, как эта ошибка удалось остановить меня времени : (
4 ответов
похоже, что некоторые дистрибутивы OpenSSL для Windows ожидают дополнительного нажатия клавиши, независимого от стандартного ввода. Выход.txt правильно передается в STDIN openssl (сервер получает команду QUIT), но ничего не происходит, пока вы не нажмете любую клавишу.
эта проблема не существует в по Cygwin!--5--> версия OpenSSL. К сожалению, базовая установка Cygwin занимает около 100 Мб дискового пространства, но вы можете попробовать извлечь только openssl.exe и требуется библиотеки.
этот метод работает:
echo QUIT | c:\cygwin\bin\openssl.exe s_client -showcerts -connect google.com:443 > cert.txt
в windows, просто введите winpty
прежде чем ваша команда openssl сделает трюк. Так, например, вы можете создать сертификат следующим образом:
winpty openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX
Если под mingw64 в Windows вы можете использовать программу winpty правильно завернуть терминал
например, создание псевдонима под bash псевдоним openssl= ' winpty openssl.exe'
затем openssl s_client-подключить бла
должно работать, как ожидалось
по причинам, которые я не полностью понимаю, Эхо QUIT или quit\n во вход не работает в моем случае. Я использую MINGW64 с OpenSSL 1.0.2 d в Windows 8.1, и я использую openssl для получения сертификатов с серверов внутри сценария bash. Однако просто запуск команды openssl в фоновом режиме и ожидание немного сработали для меня:
#!/bin/bash
openssl s_client -connect my.server.com:443 -showcerts > output.txt 2>/dev/null &
sleep 2