¿Es posible establecer un tiempo de espera en el comando s_client de openssl?

14

Tengo un script que usa el comando s_client de openssl para obtener certificados para un gran conjunto de hosts. Algunos de estos hosts serán inevitablemente inalcanzables debido a un firewall. ¿Es posible establecer el tiempo de espera de s_client en algo mucho más corto que el predeterminado? No veo uno en la página del manual / archivo de ayuda.

Ese o algún tipo de comando de envoltura que matará automáticamente al openssl -s_client después de X número de segundos.

Prefiero no probar previamente un host / puerto para la usabilidad si es posible.

Justin Ainsworth
fuente

Respuestas:

13

Use el comando timeout del paquete GNU coreutils.

timeout <time> <command>

Alternativamente, mire la primera respuesta a esta publicación de blog archivada para obtener una respuesta solo de bash.

Kupson
fuente
1

para el primer bucle: mientras lee el nombre del servidor;

timeout 2 bash -c "/ dev / tcp / $ servername / $ Port" && echo Puerto abierto. || echo Puerto cerrado.

hecho

Pero los puertos abiertos son más difíciles: tiempo de espera 1 openssl s_client -showcerts -connect $ servername: $ Port

erik
fuente