Eu abordarei sua preocupação real em vez da pergunta específica que você fez: dehydrated --cron
já faz a verificação da data para você.
Documentação:
--cron
(-c
) Sign/renew non-existent/changed/expiring certificates.
Código:
# Check expire date of existing certificate
if [[ -e "${cert}" ]]; then
echo " + Checking expire date of existing cert..."
valid="$("${OPENSSL}" x509 -enddate -noout -in "${cert}" | cut -d= -f2- )"
printf " + Valid till %s " "${valid}"
if "${OPENSSL}" x509 -checkend $((RENEW_DAYS * 86400)) -noout -in "${cert}"; then
printf "(Longer than %d days). " "${RENEW_DAYS}"
if [[ "${force_renew}" = "yes" ]]; then
echo "Ignoring because renew was forced!"
else
# Certificate-Names unchanged and cert is still valid
echo "Skipping renew!"
( link )
RENEW_DAYS
aparece como padrão para 30, mas você pode substituí-lo usando um arquivo de configuração; citando a documentação :
dehydrated is looking for a config file in a few different places, it will use the first one it can find in this order:
/etc/dehydrated/config
/usr/local/etc/dehydrated/config
- The current working directory of your shell
- The directory from which dehydrated was run
O arquivo de configuração de amostra contém esta linha:
# Minimum days before expiration to automatically renew certificate (default: 30)
#RENEW_DAYS="30"
Para diminuir o valor do padrão de 30 para 7 dias, por exemplo, edite a segunda linha:
RENEW_DAYS="7"