[server] openssl의 s_client 명령에서 시간 초과를 설정할 수 있습니까?

openssl의 s_client 명령을 사용하여 큰 호스트 집합에 대한 인증서를 가져 오는 스크립트가 있습니다. 이러한 호스트 중 일부는 방화벽 때문에 불가피하게 도달 할 수 없습니다. s_client 시간 초과를 기본값보다 훨씬 짧게 설정할 수 있습니까? 맨 페이지 / 도움말 파일에 보이지 않습니다.

X 초 후에 openssl -s_client를 자동 종료하는 일종의 래퍼 명령입니다.

가능하다면 호스트 / 포트를 사전 테스트하지 않는 것이 좋습니다.



답변

GNU coreutils 패키지에서 timeout 명령을 사용하십시오.

timeout <time> <command>

또는 이 아카이브 된 블로그 게시물에 대한 첫 번째 응답에서 bash 전용 답변을 찾으십시오 .


답변

첫 번째 루프의 경우 : servername을 읽는 동안; do

timeout 2 bash -c “/ dev / tcp / $ servername / $ Port”&& echo 포트가 열려 있습니다. || 에코 포트가 닫혔습니다.

끝난

그러나 열린 포트는 더 어렵다 : timeout 1 openssl s_client -showcerts -connect $ servername : $ Port


답변