Advertisement
hivefans

check_domainssl_time.sh

Dec 8th, 2020
1,170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.60 KB | None | 0 0
  1. check_domain_time.sh「SSL 证书过期检测脚本」
  2.  
  3. #!/bin/bash
  4. ################ Version Info ##################
  5. # Create Date: 2018-09-29
  6. # Author:      Zhang
  7. # Mail:        zhang@xxxx.com
  8. # Version:     1.0
  9. # Attention:   通过域名获取证书的过期时间
  10. ################################################
  11. # V1.0.0 2018-09-29 脚本编写    张
  12. #      1.通过域名获取证书的过期时间
  13. ################################################
  14.  
  15. # 加载环境变量
  16. . /etc/profile
  17. . ~/.bash_profile
  18. . /etc/bashrc
  19.  
  20. # 脚本所在目录即脚本名称
  21. script_dir=$( cd "$( dirname "$0"  )" && pwd )
  22. script_name=$(basename ${0})
  23.  
  24. readFile="${script_dir}/domain_ssl.info"
  25. grep -v '^#' ${readFile} | while read line;do # 读取存储了需要监测的域名的文件
  26.     # echo "${line}"
  27.     get_domain=$(echo "${line}" | awk -F ':' '{print $1}')
  28.     get_port=$(echo "${line}" | awk -F ':' '{print $2}')
  29.  
  30.     # echo ${get_domain}
  31.     # echo "${get_port}"
  32.     # echo "======"
  33.  
  34.     # 使用openssl获取域名的证书情况,然后获取其中的到期时间
  35.     END_TIME=$(echo | openssl s_client -servername ${get_domain}  -connect ${get_domain}:${get_port} 2>/dev/null | openssl x509 -noout -dates |grep 'After'| awk -F '=' '{print $2}'| awk -F ' +' '{print $1,$2,$4 }' )
  36.  
  37.     END_TIME1=$(date +%s -d "$END_TIME") # 将日期转化为时间戳
  38.     NOW_TIME=$(date +%s -d "$(date | awk -F ' +'  '{print $2,$3,$6}')") # 将当前的日期也转化为时间戳
  39.  
  40.     RST=$(($(($END_TIME1-$NOW_TIME))/(60*60*24))) # 到期时间减去目前时间再转化为天数
  41.  
  42.     echo "${RST}"
  43. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement