Analisa o prazo de expiração do comando openssl

2

Estava prestes a perguntar como verificar a data dos certificados SSL automaticamente, mas depois descobri, então abaixo você pode encontrar minha resposta também.

    
por good fairy 07.09.2014 / 20:19

2 respostas

3

Aqui está a solução que eu criei:

Faça deste um script e chame-o diariamente através do cron, então você receberá um e-mail assim que um dos certificados estiver prestes a expirar:

#!/bin/bash 
gracedays=14
for server in myserver1 myserver2 myserver3;
do
    data='echo | openssl s_client -connect "${server}:443" 2>/dev/null | openssl x509 -noout -dates | grep notAfter | sed -e 's#notAfter=##''

    ssldate='date -d "${data}" '+%s''
    nowdate='date '+%s''
    diff="$((${ssldate}-${nowdate}))"

    if test "${diff}" -lt "$((${gracedays}*24*3600))";
    then
        if test "${diff}" -lt "0";
        then
            echo "The certificate for ${server} has already expired."
        else
            echo "The certificate for ${server} will expire in $((${diff}/3600/24)) days."
        fi
    fi
done

O problema está resolvido para mim, se alguém quiser torná-lo mais legal ou colocar em algum repositório, torne-o um módulo: Sinta-se livre!

    
por 08.09.2014 / 00:25
0
data='echo | openssl s_client -connect "${server}:443" -servername "${server}" 2>/dev/null | openssl x509 -noout -dates | grep notAfter | sed -e 's#notAfter=##''

Com suporte a hosts SNI.

    
por 17.02.2018 / 03:32