我有一个IP列表,我需要检查它们是否支持TLS1.2,我正在使用Openssl。但是,我似乎无法在Bash脚本中自动执行该过程。它只在第一个IP上执行并等待我的输入。我知道我必须添加< /dev/null
或echo "x"
,但它没有帮助。我试过了:
for i in `cat scope`; do openssl s_client -tls1_2 -connect $i:443 < /dev/null; done
或:
for i in `cat scope`; do echo "x" | openssl s_client -tls1_2 -connect $i:443 < /dev/null; done
编辑:已解决,第443端口未在第二个IP上打开,这就是它等待的原因。
答案 0 :(得分:0)
我建议使用nmap
而不是s_client
来检查TLS握手(并且当端口未打开时它会捕获这种情况。)
for i in `cat scope`; do
if nmap --script ssl-enum-ciphers -p 443 "$i" | grep "TLSv1.2" >/dev/null; then
echo "$i supports TLSv1.2"
else
echo "$i doesn't support TLSv1.2"
fi
done