获取SSL证书过期时间

2021-07-27  本文已影响0人  草帽路飞S

#!/bin/bash

# auth:amu

# date:2021-7-12 14:50

# 脚本所在目录即脚本名称

script_dir=$( cd "$( dirname "$0"  )" && pwd )

script_name=$(basename ${0})

num=1

function check_date(){

END_TIME=$(echo | openssl s_client -servername ${get_domain}  -connect ${get_domain}:${get_port} 2>/dev/null | openssl x509 -noout -dates 2>/dev/null |grep 'After'| awk -F '=' '{print $2}'| awk -F ' +' '{print $1,$2,$4 }' 2>/dev/null )

    #使用openssl获取域名的证书情况,然后获取其中的到期时间

    END_TIME1=$(date +%s -d "$END_TIME") #将日期转化为时间戳

    NOW_TIME=$(date +%s -d "$(date | awk -F ' +'  '{print $2,$3,$6}')") #将目前的日期也转化为时间戳

    RST=$(($(($END_TIME1-$NOW_TIME))/(60*60*24))) # 到期时间减去目前时间再转化为天数

    echo "$num ${get_domain} ${RST}天"

    num=`expr $num + 1`

}

readFile="${script_dir}/domain_ssl.info"

grep -v '^#' ${readFile} | while read line;do #读取存储了需要监测的域名的文件

    #get_domain=$(echo "${line}" | awk -F ':' '{print $1}')

    #get_port=$(echo "${line}" | awk -F ':' '{print $2}')

    get_domain=$(echo "${line}")

    get_port="443"

curl -s -I --connect-timeout 2 https://${get_domain} >/dev/null

if [ $? -ne 0 ];then

curl -s -I --connect-timeout 2 ${get_domain} >/dev/null

if [ $? -eq 0 ];then

check_date

else

echo "$num ${get_domain} 无效"

num=`expr $num + 1`

fi

else

check_date

fi

done

上一篇下一篇

猜你喜欢

热点阅读