美文网首页
获取SSL证书过期时间

获取SSL证书过期时间

作者: 草帽路飞S | 来源:发表于2021-07-27 15:22 被阅读0次

    #!/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

    相关文章

      网友评论

          本文标题:获取SSL证书过期时间

          本文链接:https://www.haomeiwen.com/subject/sidomltx.html