如何Shell查看SSL证书剩余天数?

Bash

1 前言

一个问题,一篇文章,一出故事。
笔者最近需要查看SSL证书的剩余天数,于是整理此脚本。

2 最佳实践

1.1 创建脚本

mkdir -p ~/scripts
vim ~/scripts/expireDomain.sh

加入如下脚本,

#!/bin/bash

if [ "$1" == "" ] || [ "$2" == "" ] || [ "$3" == "" ]; then
        echo "Usage: $0 <serverHost> <serverPort> <serverName>"
        exit 1;
fi

serverHost=$1
serverPort=$2
serverName=$3

endDate=`openssl s_client -connect $serverHost:$serverPort -servername $serverName -showcerts </dev/null 2>/dev/null |
        sed -n '/BEGIN CERTIFICATE/,/END CERT/p' |
        openssl x509 -text 2>/dev/null |
        sed -n 's/ *Not After : *//p'`
if [ -n "$endDate" ]; then
        endDateSeconds=`date '+%s' --date "$endDate"`
        nowSeconds=`date '+%s'`
        echo "($endDateSeconds-$nowSeconds)/24/3600" | bc
fi

1.2 测试脚本

sh ~/scripts/expireDomain.sh 47.90.98.232 443 www.cmdschool.org

可见如下整数返回天数,

303
没有评论

发表回复

Bash
如何熟悉Base Shell的变量的间接引用?

1 前言 一个问题,一篇文章,一出故事。 笔者希望以一个变量名称去引用另一个变量,于是整理此文。 2 …

Bash
如何实现文件夹路径转纯数字符串?

1 前言 一个问题,一篇文章,一出故事。 由于由于需要设置某目录的配额,配额要求为每个目录指定一个项 …

Bash
如何统计Linux打开文件前10进程?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台服务最近压力比较大,打开的文件数量不断地往 …