(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, echo
ing/type
ing 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?
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"
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.