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
没有评论