web-dev-qa-db-fra.com

Comment mettre fin à OpenSSL s_client après la connexion

(Reviewers: Je sais aussi que cela s'égare sur le territoire SuperUser, mais si la question précédente s'est faufilée ... :))

C'est très similaire à cette question , mais dans un environnement Windows (7/8/Server 2008/2012): j'utilise le port Windows d'OpenSSL.

Je suis entrain de courir

openssl s_client -connect 192.168.0.1:443

à partir d'une invite de commande, afin d'afficher les informations du certificat. Cependant, openssl attend l'entrée utilisateur par la suite; je peux Ctrl+C pour "casser" la sortie, ou tout simplement taper quelques caractères et appuyer sur retour, mais je dois automatiser cela - tout ce qui m'intéresse vraiment, ce sont les informations du certificat.

Selon la question précédente, j'ai besoin d'un moyen de mettre fin/fermer la connexion. Cependant, j'ai essayé la tuyauterie dans les fichiers d'entrée, echoing/typeing entrée dans le mixage, et rien ne semble simuler un véritable utilisateur. Quelqu'un peut-il me montrer comment forcer openssl à quitter après la connexion?

19
KenD

Vous pouvez obtenir l'effet souhaité en utilisant un tuyau pour passer le caractère "Q". Cela en fait un excellent one-liner pour un script:

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

Si vous utilisez une version suffisamment nouvelle de BASH, vous pouvez également utiliser la redirection triple inférieure à la place de la tuyauterie (parfois une pipe n'est pas utilisable car elle fonctionne sur stdin/stdout):

openssl s_client -connect Host:port <<< "Q"
34
Degenerate DevOps

La saisie de la lettre "Q" au début d'une ligne vierge mettra fin à une connexion active. J'ai vu s_client entrer dans des états où cela ne fait rien, mais c'est la façon documentée de quitter une session.

Si vous voulez le faire en mode batch, créez simplement un fichier texte avec la lettre 'Q' suivie d'un retour chariot et dirigez-le vers la fin de la commande comme ceci:

openssl s_client -connect Host:port < Q.txt

J'ai essayé ça et ça marche.

4
JSAnderson