2012-04-05 5 views
1

Ich möchte zu lesen:OpenSSL Um den folgenden Befehl verwenden, um mehrere Zertifikate

openssl x509 -noout -in /etc/pki/tls/certs/cert1.pem -enddate 
openssl x509 -noout -in /etc/pki/tls/certs/cert2.pem -enddate 
openssl x509 -noout -in /etc/pki/tls/certs/certN.pem -enddate 

Gibt es eine Möglichkeit, alle Zertifikate mit Wildcards zu lesen? z.B.

openssl x509 -noout -in /etc/pki/tls/certs/*.pem -enddate 

Jede Hilfe sehr geschätzt werden würde. Vielen Dank im Voraus.

+0

Ich habe es geschafft, es mit einem Array von Dateinamen zu tun und es mit For-Schleife. Wenn es eine bessere Arbeit gibt, bitte teilen. Danke – Zeeshan

Antwort

1

verwenden, um eine Schale scriptlet:

#! /bin/sh 

for file in /etc/pki/tls/certs/*.pem; do 
    echo -n "$file: " 
    openssl x509 -noout -in "$file" -enddate 
done 

setzt diese in einer Datei, sagen certexpires.sh dann können Sie es mit laufen:

sh certexpires.sh 
0

Ich habe ein Alias ​​für meinen Terminal geschaffen, das diese auf läuft ganze Dateien im Ordner (Sie können es nur einstellen, auf pem Erweiterung laufen, aber das ist meine Anpassung)

alias ssl-opemu='_(){ for i in *; do openssl x509 -in $i -noout -text; done; }; _' 

Ich bin mir fast sicher, dass ich dies von einem früheren Thread geerbt habe, also alle Rechte an ihren ursprünglichen Besitzern. :)

1

Meine Antwort für Ihren Fall ist dieser Befehl:

ls /etc/pki/tls/certs/cert*.pem | xargs -L1 openssl x509 -noout -enddate -in 

Erklärung

Im ersten Schritt habe ich die Liste meiner Zertifikate machen, was ich will analysieren. Zum Beispiel in meinem Fall könnte es so sein:

[[email protected] certs]# ls -1 */*.crt 
ewsport.org/ewsport.org.crt 
hxpro.cz/hxpro.crt 
jaguars.cz/jaguars.crt 
koudelka.photography/koudelka.photography.crt 
unicycle-hockey.cz/unicycle-hockey.cz.crt 
unipragga.cz/unipragga.cz.crt 

Nächster Schritt, ich möchte Ablaufdatum von jedem von ihnen erhalten.

[[email protected] certs]# openssl x509 -noout -enddate -in hxpro.cz/hxpro.crt 
notAfter=Apr 24 11:29:21 2017 GMT 

Jetzt kann ich die Ausgabe von meinem ersten Befehl an die zweite mit Xargs senden.

[[email protected] certs]# ls -1 */*.crt | xargs -L1 openssl x509 -noout -enddate -in 
notAfter=Mar 31 15:08:20 2017 GMT 
notAfter=Apr 24 11:29:21 2017 GMT 
notAfter=Mar 23 21:23:42 2017 GMT 
notAfter=Apr 24 11:50:32 2017 GMT 
notAfter=Dec 11 16:32:41 2016 GMT 
notAfter=Mar 20 19:44:17 2017 GMT 

Ich habe die Option -L1 verwendet, weil der Befehl openssl nur eine -in-Datei als Eingabe benötigt.

+1

Danke für deine Antwort. Kannst du bitte erklären, warum der von dir gepostete Befehl das Problem des OP löst - und warum es vielleicht besser ist als die bereits gegebenen Antworten? – Tom

+0

Meine Lösung ist einfach einfacher und klarer, denke ich. –

+0

Ja, aber ... warum? Was bedeutet '| xargs' tun? Oder '-L1'? – Tom

Verwandte Themen