J'essaie d'obtenir le certificat ssl d'un serveur distant sous Windows. Une option que j'ai trouvée est d'utiliser openssl. La commande de le faire comme indiqué par certains postes sur le internet est:Obtention du certificat ssl sous Windows en utilisant C++
openssl.exe s_client -showcerts -connect {REMOTE_SERVER_IP}:{REMOTE_SERVER_PORT}
Cela fonctionne parfaitement, mais mon problème est que la commande ci-dessus a un délai d'attente de 300 secondes. Le certificat lui-même est imprimé assez rapidement et je ne vois aucune raison d'attendre 300 secondes quand j'obtiens tout ce que je veux dans les premières secondes. Encore je pense qu'il n'y a aucun moyen de changer le paramètre timeout sur s_client. J'ai donc essayé de trouver un moyen de tuer un processus sur Windows après une période de temps donnée, mais encore une fois n'avait pas de chance là-bas. Des idées sur comment cela peut-il être fait? S'il existe d'autres moyens d'obtenir un certificat ssl de serveurs distants et de le stocker dans un fichier, cela fera également l'affaire.
EDIT: selon la demande de Bruno en ajoutant plus d'informations. J'essaie de créer une application C++ qui obtient le certificat SSL d'un serveur distant et le stocke dans un fichier pour un traitement ultérieur. Comme mon application utilise déjà openssl.exe, soit j'ai besoin d'une solution qui utilise openssl.exe ou une commande Windows standard (c'est-à-dire ne nécessite pas de bibliothèques supplémentaires).
EDIT2: J'ai trouvé un moyen d'éviter l'attente dans Linux - il suffit de créer un fichier vide et de rediriger l'entrée d'openssl s_client vers celui-ci (ou utiliser un tube pour passer l'entrée vide). Cela fonctionne aussi bien sur windows que sur les anciennes versions d'openssl (0.9.8l). Je l'ai essayé avec 0.9.8r et avec 1.0.1b et rediriger l'entrée vers un fichier vide n'aide pas là.
Avez-vous essayé d'appuyer sur Ctrl + C ou Ctrl + D? – Bruno
La commande est démarrée à partir d'un programme. Si je l'exécute à partir de la ligne de commande ctrl + c fait le travail mais ce n'est pas ce dont j'ai besoin. –
Jusqu'à présent, cela ressemble à une question SuperUser (d'où les votes à fermer). Si vous l'exécutez à partir d'un programme, dites-nous comment (et quelle langue). – Bruno