• Linux 系统使用命令行工具查看 TLS/SSL 效期时间


    1] 通弄服务器地址和域名查看证书有效期

    通过openssl命令行查看域名有效期

    例如我们想查看”www.cnblogs.com”的域名证书剩余有效期,则可以使用如下命令:

    cat << "EOF" > ./check_expire.sh
    domain="www.cnblogs.com"
    PORT="443"
    time_formatted=$(openssl s_client -servername $domain -connect $domain:$PORT 2>/dev/null | openssl x509 -noout -dates 2>/dev/null |grep notAfter|cut -d '=' -f2)
    time_string=$(date -d "$time_formatted" +%s)
    time_current=$(date +%s)
    day_left=$(echo "($time_string - $time_current)/( 3600 * 24)"|bc)
    echo $day_left
    EOF
    sh ./check_expire.sh
    rm -f ./check_expire.sh
    
    

    OpenSSL 客户端的各参数意义如下:

    • s_client:指示 OpenSSL 工具实现一个 SSL/TLS 客户端,通过 SSL/TLS 连接到远程主机
    • -servername:设置 TLS SNI(Server Name Indication),用于设置连接的远程主机
    • -connect:设置连接的主机及端口
    • x509:运行显示证书和签名实用工具
    • -noou:不输出证书的编码版本
    • -dates:显示证书的效期时间信息
      输出结果信息中的”notBefore”和”notAfter”则为证书效期的起止时间。

    通过curl命令行获取 证书有效期信息

    例如

    cat << "EOF" > ./check_expire.sh
    domain="www.cnblogs.com"
    time_raw=$(curl -vIs https://$domain 2>&1 |grep "expire date"|awk -F 'expire date:' '{print $2}')
    time_string=$(date -d "$time_raw" +%s)
    time_current=$(date +%s)
    day_left=$(echo "($time_string - $time_current)/(3600*24)"|bc)
    echo $day_left
    EOF
    sh ./check_expire.sh
    rm -f ./check_expire.sh
    

    2] 通过查看证书文件获取证书有效期信息

    cert_path="/path/to/domain.crt"
    time_raw=$(openssl x509 -enddate  -noout -in $cert_path|awk -F "notAfter=" '{print $2}')
    time_string=$(date -d "$time_raw" +%s)
    time_current=$(date +%s)
    day_left=$(echo "($time_string - $time_current)/(3600*24)"|bc)
    echo $day_left
    
    
  • 相关阅读:
    SQL通用数据类型
    SQL基础
    软件测试相关(1)
    C语言——判断
    C语言新手教程——计算
    并查集
    洛谷-P1551 亲戚
    洛谷-P1536 村村通
    洛谷-P1525 [NOIP2010 提高组] 关押罪犯
    洛谷-P2814 家谱
  • 原文地址:https://www.cnblogs.com/faberbeta/p/15899891.html
Copyright © 2020-2023  润新知