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