批量查询nginx证书是否过期

#!/bin/bash

# 定义一个函数,用于检查证书到期日期
check_cert_expiry() {
    cert_path="$1"
    days_threshold="$2"

    # 获取证书的到期日期
    expiry_date=$(openssl x509 -enddate -noout -in "$cert_path" | awk -F '=' '{print $2}')

    # 将到期日期转换为时间戳
    expiry_timestamp=$(date -d "$expiry_date" +%s)

    # 获取当前时间戳
    current_timestamp=$(date +%s)

    # 计算剩余天数
    days_remaining=$(( ($expiry_timestamp - $current_timestamp) / (60 * 60 * 24) ))

    # 判断是否小于阈值
    if [ "$days_remaining" -lt "$days_threshold" ]; then
        echo "证书 $cert_path 将于 $days_remaining 天后过期。"
    else
        echo "证书 $cert_path 还有 $days_remaining 天到期。"
    fi
}

# 迭代 Nginx 配置目录中的所有证书文件
nginx_cert_dir="/etc/nginx/ssl"
days_threshold=30  # 可以自定义阈值

for cert_file in "$nginx_cert_dir"/*.crt; do
    check_cert_expiry "$cert_file" "$days_threshold"
done
文章作者: Administrator
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 知识武装灵魂
喜欢就支持一下吧