[gelöst] OpenVPN Zertifikat automatisiert überprüfen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
schorsch_76
Beiträge: 2542
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

[gelöst] OpenVPN Zertifikat automatisiert überprüfen

Beitrag von schorsch_76 » 31.07.2019 21:05:42

Hallo Kollegen,

ich hab einige Rechner die per OpenVPN eine Verbindung aufbauen. Ich merke alle Jahre, wenn ein Zertifikat abgelaufen ist, wenn was nicht mehr geht. Ich steh grad voll auf dem Schlauch wie ich das Zertifikat in einem Script prüfen kann und einen Monat früher eine EMail bekomme....

Code: Alles auswählen

openssl x509 -noout -dates -in /etc/openvpn/certs/key-cert.pem 
notBefore=Aug 18 08:48:33 2017 GMT
notAfter=Aug 18 08:48:33 2019 GMT
Aber wie prüfe ich das "notAfter" in einem Monat erreicht ist?

:oops:
Zuletzt geändert von schorsch_76 am 31.07.2019 22:09:49, insgesamt 1-mal geändert.

TomL

Re: OpenVPN Zertifikat automatisiert überprüfen

Beitrag von TomL » 31.07.2019 21:56:37

Als Anregung:

Code: Alles auswählen

$ echo $(date)
Mi 31. Jul 21:54:34 CEST 2019

$ echo $(date +"%Y-%j")
2019-212

$ echo $(date --date="+30 day" +"%Y-%j")
2019-242

$ echo $(date -d "Aug 18 08:48:33 2019 GMT" +'%d.%m.%Y')
18.08.2019

$ echo $(date -d "Aug 18 08:48:33 2019 GMT" +"%Y-%j")
2019-230

$ a=$(date --date="+30 day" +"%Y-%j")
$ echo $a
2019-242

$ b=$(date -d "Aug 18 08:48:33 2019 GMT" +"%Y-%j")
$ echo $b
2019-230

$ [ "$a" \< "$b" ] && echo "ok" || echo "updaten"
updaten

Benutzeravatar
schorsch_76
Beiträge: 2542
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: OpenVPN Zertifikat automatisiert überprüfen

Beitrag von schorsch_76 » 31.07.2019 22:09:11

Ok:

Code: Alles auswählen

date --date"Aug 18 08:48:33 2019 GMT" "+%s"
bringt es zu Sekunden seit epoch.

Code: Alles auswählen

date --date="+1 month" "+%s"
gibt das gleiche für heute +1 Monat aus.

GEsamt sieht es dann so aus (per cron sendet es dann mails. :)

Code: Alles auswählen

#!/bin/sh

CERT=/etc/openvpn/certs/key-cert.pem

NOTAFTER=`openssl x509 -noout -dates -in $CERT | grep "^notAfter=.*$" | cut -f 2 -d =`

echo $NOTAFTER

EPOCH_CERT=`date --date="$NOTAFTER" "+%s"`
EPOCH_NOW_PLUS_MONTH=`date --date="+1 month" "+%s"`

echo $EPOCH_CERT
echo $EPOCH_NOW_PLUS_MONTH

if [ $EPOCH_NOW_PLUS_MONTH -ge $EPOCH_CERT ]; then
        echo "Cert is soon invalid"
fi
EDIT: @Tom: Danke :)

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: [gelöst] OpenVPN Zertifikat automatisiert überprüfen

Beitrag von bluestar » 31.07.2019 23:33:13

Nimm doch checkend:

Code: Alles auswählen

if openssl x509 -checkend 86400 -noout -in file.pem
then
  echo "Certificate is good for another day!"
fi

Antworten