shell脚本——检测SSL证书过期时间

        说明:

                1、测试了阿里和又拍云的,虽然有某域名的证书了,但是输出结果却不是购买的证书信息,所以,如果有做cdn,则加host进行检测的,没有就无所谓了。

又拍云cdn测试信息

        Validity
            Not Before: Nov 14 00:00:00 2016 GMT
            Not After : Dec 12 23:59:59 2017 GMT
        Subject: C=CN, ST=zhejiang, L=hangzhou, O=Hangzhou Weiju Network Ltd., OU=\xE6\x8A\x80\xE6\x9C\xAF\xE9\x83\xA8, CN=*.upaiyun.com

                2、这里只是单域名检测,多域名,可以加上for循环。

                3、提醒方式,自由发挥。

Shell

#!/bin/bash

domain_name="statics.perofu.com"
ssl_port="443"
#no cdn
host="8.8.8.8 statics.perofu.com"

grep -q "${host}" /etc/hosts || echo "${host}" >> /etc/hosts


ping -c1 114.114.114.114 &> /dev/null
if [ $? -eq 0 ]
then

        ssl_date=$(echo |openssl s_client -connect ${domain_name}:${ssl_port} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'|openssl x509 -text)

        echo "${ssl_date}" | grep 'Subject: CN' | grep -q "${domain_name}"
        if [ $? -eq 0 ]
        then
                tmp_last_date=$(echo "${ssl_date}" | grep 'Not After :' | awk -F' : ' '{print $NF}')
                last_date=$(date -ud "${tmp_last_date}" +%Y-%m-%d" "%H:%M:%S)
                day_count=$(( ($(date -d "${last_date}" +%s) - $(date +%s))/(24*60*60) ))
                echo -e "\e[40;33;1m The [${domain_name}] out of date is : ${last_date} && [${day_count}] \e[0m"
        else
                echo -e "\e[40;31;1m check ssl info isn't the [${domain_name}] ,please check ... \e[0m"
        fi

else
        echo -e "\e[40;31;1m network is down ... \e[0m"
fi

shell输出结果

 The [statics.perofu.com] out of date is : 2018-05-10 23:59:59 && [343]

转载于:https://my.oschina.net/fufangchun/blog/912339

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值