Wenn ich die eigentliche Datei und eine Bash-Shell unter Mac oder Linux habe, wie kann ich die Zertifizierungsdatei abfragen, wann sie abläuft? Keine Website, sondern die Zertifikatdatei selbst, vorausgesetzt, ich habe die Dateien csr, key, pem und chain.
326
-startdate
und-enddate
Optionen in das eingebautex509
Dienstprogramm. Sie werden dir das rettengrep
.Wenn Sie nur wissen möchten, ob das Zertifikat abgelaufen ist (oder dies innerhalb der nächsten N Sekunden tun wird), können Sie mit der folgenden
-checkend <seconds>
Optionopenssl x509
Folgendes mitteilen:Dies erspart es, Datums- / Zeitvergleiche selbst durchführen zu müssen.
openssl
gibt einen Exit-Code von0
(Null) zurück, wenn das Zertifikat nicht abgelaufen ist und dies für die nächsten 86400 Sekunden im obigen Beispiel nicht tun wird. Wenn das Zertifikat abgelaufen ist oder dies bereits getan hat - oder ein anderer Fehler wie eine ungültige / nicht vorhandene Datei - lautet der Rückkehrcode1
.(Natürlich wird davon ausgegangen, dass Uhrzeit / Datum korrekt eingestellt sind.)
quelle
-noout
Option aus, um eine hilfreiche Nachricht mit einem einzigen Befehl ohne zusätzliche Logik anzuzeigen. Gibt beispielsweiseopenssl x509 -checkend 0 -in file.pem
die Ausgabe "Zertifikat läuft ab" oder "Zertifikat läuft nicht ab" aus und gibt an, ob das Zertifikat in null Sekunden abläuft.Hier ist meine Bash-Befehlszeile, um mehrere Zertifikate in der Reihenfolge ihres Ablaufs aufzulisten, die zuletzt zuerst abläuft.
Beispielausgabe:
quelle
0 7 * * 1 /path/to/cert.sh | mail -s "certbot" [email protected]
Hier ist eine Bash-Funktion, die alle Ihre Server überprüft, vorausgesetzt, Sie verwenden DNS-Round-Robin. Beachten Sie, dass dies ein GNU-Datum erfordert und unter Mac OS nicht funktioniert
Ausgabebeispiel:
quelle
expiry_date
Wert der Zeitzonenname am Ende entfernt werden. Fügen Siecut
dazu am Ende der Pipe eine zusätzliche hinzu :| cut -d ' ' -f 1-4
Eine Zeile prüft auf wahr / falsch, ob das Domain-Zertifikat einige Zeit später (z. B. 15 Tage) abgelaufen ist:
quelle
Für MAC OSX (El Capitan) Diese Modifikation von Nicholas 'Beispiel hat bei mir funktioniert.
Beispielausgabe:
macOS mochte das nicht
--date=
oder--iso-8601
Flags auf meinem System nicht.quelle
.cer
Zertifikate hätten, die Sie gerade erstellt und von der Apple Dev-Website heruntergeladen haben?Entspricht der akzeptierten Antwort. Beachten Sie jedoch, dass dies auch mit
.crt
Dateien und nicht nur mit Dateien funktioniert.pem
, nur für den Fall, dass Sie den.pem
Speicherort der Datei nicht finden können .Ergebnis:
quelle
Wenn Sie (aus irgendeinem Grund) eine GUI-Anwendung unter Linux verwenden möchten, verwenden Sie
gcr-viewer
(in den meisten Distributionen wird sie vom Paket installiertgcr
(ansonsten im Paketgcr-viewer
)).quelle