Come estraggo tutti i soggetti di un file di cactus con la riga di comando openssl?


8

Esiste un comando openssl per estrarre tutti i soggetti certificati di un file di cactus (un file contenente diversi certificati come /etc/ssl/certs/ca-certificates.crt)?

Ho provato openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -subjectma mi dà solo l'oggetto del primo certificato.

Risposte:


5

Purtroppo non credo che OpenSSL possa farlo. OpenSSL presuppone un certificato per file per le azioni x509.

Secondo questo sito devi dividerli in singoli file. Fornisce anche uno script perl che lo dividerà per te. È quindi possibile eseguire il ciclo sui file o modificare lo script perl per estrarre direttamente l'oggetto.


1

Imposta la filevariabile in modo che punti al tuo file, modifica il comando openssl e sei a posto:

file="your file name"; first=""; for i in $(grep -n CERT "${file}" | cut -f 1 -d:)
do
    if [ -z "$first" ]
    then
        first=$i
        continue
    fi
    sed -n "$first,${i}p" "${file}" | openssl x509 -noout -subject
    first=""
done

Questa risposta potrebbe essere migliorata aggiungendo una descrizione di come funzionano i comandi. E a proposito, non hai bisogno delle parentesi graffe ${file}.
G-Man dice "Ripristina Monica" il

questo script funziona esattamente come previsto, prende ogni sezione del certificato da un file (catena) e mostra le righe dell'oggetto
user906489

0

Per stampare tutti gli argomenti all'interno del file CA:

openssl crl2pkcs7 -nocrl -certfile ca-certificates.crt | openssl pkcs7 -print_certs -text -noout | grep 'Subject:'

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.