Сценарий Bash для расчета оставшихся дней до истечения срока действия сертификатов SSL на веб-сайте

У меня есть веб-сайт xplosa.com , на нем есть действующие сертификаты SSL, и я прошел через сценарий bash, который должен иметь возможность рассчитать количество оставшихся дней до истечения срока . Я знаю, что есть много альтернативных способов выполнить эту работу, но мне нравится работать с Ubuntu bash. Кстати, я использую Ubuntu 18.04

Это мой пример логики

#!/bin/bash

get_the_cert_expiry_date() {
    # command to retrieve the expiry date
}

currentDate="$(date +%Y-%m-%d)"
website="xplosa.com"
certExpDate="$(get_the_cert_expiry_date)"
count=$((currentDate - certExpDate))

echo "remaining days for expiry: ${count}"
  • Это правильная логика?
  • Как реализовать get_the_cert_expiry_date
0
задан 26 December 2019 в 10:53

1 ответ

Это должно работать

#!/bin/bash

website="xplosa.com"
certificate_file=$(mktemp)
echo -n | openssl s_client -servername "$website" -connect "$website":443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $certificate_file
date=$(openssl x509 -in $certificate_file -enddate -noout | sed "s/.*=\(.*\)/\1/")
date_s=$(date -d "${date}" +%s)
now_s=$(date -d now +%s)
date_diff=$(( (date_s - now_s) / 86400 ))
echo "$website will expire in $date_diff days"
rm "$certificate_file"
6
ответ дан 27 December 2019 в 05:18

Другие вопросы по тегам:

Похожие вопросы: