Bash: проверить срок действия TLS сертификата и если он истекает меньше чем через 30 дней выполнить какое-то действие
Чтобы проверить срок действия TLS-сертификата и выполнить действие, если сертификат истекает менее чем через 30 дней, вы можете использовать командный скрипт на Bash. Этот скрипт будет извлекать информацию о сроке действия сертификата и принимать решение в зависимости от этого.
Пример скрипта
Вот пример Bash-скрипта, который проверяет срок действия сертификата и выполняет указанное действие, если осталось менее 30 дней до истечения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash # Путь к вашему TLS сертификату CERT_FILE="/path/to/your/certificate.crt" # Получение текущей даты в формате UNIX timestamp CURRENT_DATE=$(date +%s) # Получение даты истечения сертификата в формате UNIX timestamp EXPIRATION_DATE=$(openssl x509 -enddate -noout -in "$CERT_FILE" | sed "s/^notAfter=//" | xargs -I {} date -d "{}" +%s) # Вычисление оставшихся дней до истечения сертификата DAYS_LEFT=$(( (EXPIRATION_DATE - CURRENT_DATE) / 86400 )) # Проверка, истекает ли сертификат через 30 дней или меньше if [ "$DAYS_LEFT" -le 30 ]; then echo "Срок действия сертификата истекает через $DAYS_LEFT дней. Выполняем действие..." # Здесь укажите действие, которое нужно выполнить # Например, отправка уведомления или перезапуск сервиса else echo "Срок действия сертификата в порядке. Осталось $DAYS_LEFT дней." fi |
Пояснения
- CERT_FILE: Укажите путь к вашему сертификату.
- openssl x509 -enddate -noout -in «$CERT_FILE»: Эта команда получает дату окончания действия сертификата.
- date -d «{}» +%s: Преобразует дату истечения в UNIX timestamp для сравнения.
- DAYS_LEFT: Вычисляет количество оставшихся дней до истечения сертификата.
- if [ «$DAYS_LEFT» -le 30 ]: Проверяет, меньше ли или равно 30 дней.
Как использовать скрипт
- Сохраните скрипт в файл, например,
check_cert.sh
. - Сделайте его исполняемым:
12chmod +x check_cert.sh
- Запустите скрипт:
12./check_cert.sh
Дополнительные действия
Вы можете заменить строку с echo
внутри условия if
на любое другое действие, которое вам нужно выполнить, например, отправку уведомления по электронной почте, создание нового сертификата, перезапуск сервиса и т. д.
Recommended Posts
HAProxy + etcd + TLS
09.01.2024