GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann das Ablaufdatum eines SSL-Zertifikats anhand eines PEM-codierten Zertifikats ermittelt werden?

Mit openssl :

openssl x509 -enddate -noout -in file.pem

Die Ausgabe erfolgt in der Form:

notAfter=Nov  3 22:23:50 2014 GMT

Sehen Sie sich auch die Antwort von MikeW an, wie Sie einfach überprüfen können, ob das Zertifikat abgelaufen ist oder nicht, oder ob es innerhalb eines bestimmten Zeitraums ablaufen wird, ohne das obige Datum analysieren zu müssen.


Wenn Sie nur wissen möchten, ob das Zertifikat abgelaufen ist (oder dies innerhalb der nächsten N Sekunden tun wird), geben Sie -checkend <seconds> Option auf openssl x509 wird Ihnen sagen:

if openssl x509 -checkend 86400 -noout -in file.pem
then
  echo "Certificate is good for another day!"
else
  echo "Certificate has expired or will do so within 24 hours!"
  echo "(or is invalid/not found)"
fi

Dies erspart den Datums-/Uhrzeitabgleich selbst.

openssl gibt einen Exit-Code von 0 zurück (Null), wenn das Zertifikat nicht abgelaufen ist und dies im obigen Beispiel für die nächsten 86400 Sekunden nicht tun wird. Wenn das Zertifikat abgelaufen sein wird oder bereits abgelaufen ist - oder ein anderer Fehler wie eine ungültige/nicht vorhandene Datei - ist der Rückgabecode 1 .

(Natürlich wird davon ausgegangen, dass Uhrzeit/Datum richtig eingestellt sind)

Beachten Sie, dass ältere Versionen von openssl einen Fehler haben, was bedeutet, dass die in checkend angegebene Zeit zu groß ist, wird immer 0 zurückgegeben (https://github.com/openssl/openssl/issues/6180).


Hier ist meine Bash-Befehlszeile, um mehrere Zertifikate in der Reihenfolge ihres Ablaufs aufzulisten, wobei das neueste zuerst abläuft.

for pem in /etc/ssl/certs/*.pem; do 
   printf '%s: %s\n' \
      "$(date --date="$(openssl x509 -enddate -noout -in "$pem"|cut -d= -f 2)" --iso-8601)" \
      "$pem"
done | sort

Beispielausgabe:

2015-12-16: /etc/ssl/certs/Staat_der_Nederlanden_Root_CA.pem
2016-03-22: /etc/ssl/certs/CA_Disig.pem
2016-08-14: /etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_S.pem

Linux
  1. Wie überprüfe ich mit OpenSSL, ob das SSL-Zertifikat SHA1 oder SHA2 ist?

  2. So wenden Sie ein SSL-Zertifikat in Plesk an

  3. So erstellen Sie ein selbstsigniertes SSL-Zertifikat unter Ubuntu 18.04

  4. So installieren Sie ein SSL-Zertifikat in Plesk

  5. Wie erhalte ich das Ablaufdatum des Benutzerkennworts aus Active Directory?

OpenSSL:Überprüfen Sie das Ablaufdatum des SSL-Zertifikats und erhalten Sie weitere Informationen

Wie installiere ich ein SSL-Zertifikat in cPanel?

So installieren Sie ein SSL-Zertifikat auf cPanel

So überprüfen Sie das SSL-Ablaufdatum auf Plesk

So überprüfen Sie das Ablaufdatum eines TLS/SSL-Zertifikats auf Ubuntu

Wie erstelle ich ein Openssl-Zertifikat mit einem Ablauf von weniger als einem Tag?