2014-09-10 17 views
10

(Recenzenci: Wiem też jest to odejście na terytorium superuser, ale jeśli poprzednie pytanie podkradał przez ... :))Jak rozwiązać OpenSSL s_client po podłączeniu

ta jest bardzo podobna do , ale w Środowisko Windows (7/8/Server 2008/2012): Używam portu Windows OpenSSL.

biegnę

openssl s_client -connect 192.168.0.1:443

z wiersza polecenia, aby wyświetlić informacje o certyfikacie. Jednak openssl czeka na wprowadzenie danych przez użytkownika; Mogę Ctrl + C na "zerwanie" danych wyjściowych, lub po prostu wpisz tylko kilka znaków i naciśnij klawisz powrotu, ale muszę zautomatyzować to - wszystko, co mnie naprawdę interesuje, to informacje o certyfikacie.

Zgodnie z poprzednim pytaniem, potrzebuję sposobu na zakończenie/zamknięcie połączenia. Próbowałem jednak wypróbować w plikach wejściowych, echo ing/type ing wprowadzania do miksu i nic nie wydaje się symulować rzeczywistego użytkownika. Czy ktoś może mi pokazać, jak zmusić openssl do wyjścia po połączeniu?

Odpowiedz

1

Wprowadzenie litery "Q" na początku pustej linii zakończy aktywne połączenie. Widziałem, jak s_client wchodzi w stan, w którym to nic nie robi, ale jest to udokumentowany sposób na zakończenie sesji.

Jeśli chcesz to zrobić w trybie wsadowym, po prostu utworzyć plik tekstowy z literą „Q”, po którym następuje powrót karetki i skierować ją na końcu polecenia tak:

openssl s_client -connect host:port < Q.txt 

I próbowałem tego i działa.

+1

To wygląda obiecująco, a na pewno działa, gdy uruchomiony OpenSSL interaktywnie - ale czy jest jakiś sposób mogę „rura”, że wejście do komendy, więc mogę zmusić OpenSSL po prostu połączyć, wyświetlić informacje i wyjść? – KenD

17

Możesz osiągnąć pożądany efekt, używając rury do przejścia w znak "Q". To sprawia, że ​​dla wielkiej jedną wkładką dla skryptu:

echo "Q" | openssl s_client -connect host:port