我正在使用 openssl 檢查域串列中是否有 tlsv1.3 支持。我已經撰寫了腳本,但腳本并沒有停止它等待我按下 CTRL D 而不是它給我一個結果。這是腳本
!/usr/bin/env bash
filename='domains.txt'
while read line;do
domain=$line
if openssl s_client -connect $domain:443 -tls1_3 2>/dev/null | grep -q 'Protocol : TLSv1.3'; then
echo "tls V 1.3 being used "
else
echo "tls v 1.3 not begin used"
fi
done <$filename
我也像這樣在 openssl 中使用了 echo
echo "x" | openssl s_client -connect www.example.com:443 -tls1_3 2>/dev/null | grep 'Protocol : TLSv1.3'
注意: 當我在單個站點的終端上運行命令時,我無需鍵入 CRTL D 即可得到結果,但是當我在腳本中使用回圈和 if 陳述句時,它會等待我按 CTRL D。它真的很奇怪。
我也試過 echo "q" | openssl 命令
uj5u.com熱心網友回復:
喜歡:
echo Q | timeout 1 openssl s_client -connect www.example.com:443 -tls1_3 2>/dev/null
通過Q會使其快速退出,當無法連接時timeout會使其退出。
uj5u.com熱心網友回復:
謝謝這對我有用。實際上,當我使用 grep 時,它會給我一個錯誤的結果,而沒有 grep 它可以完美運行。
#!/usr/bin/env bash
for i in `cat domain.txt`; do
echo $i
if echo Q | timeout 3 openssl s_client -connect $i:443 -tls1_3 2>/dev/null; then
echo "$i" "tlsv1.3 enabled" >>output.txt
else
echo "$i" "tlsv1.3 disabled" >>output.txt
fi
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364452.html
