Comment extraire tous les sujets d'un cacertfile avec la ligne de commande openssl?

8

Existe-t-il une commande openssl pour extraire tous les sujets certifacte d'un fichier cacertfile (un fichier contenant plusieurs certificats comme /etc/ssl/certs/ca-certificates.crt)?

J'ai essayé openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -subjectmais ça ne me donne que le sujet du premier certificat.

sebokopter
la source

Réponses:

5

Malheureusement, je ne pense pas qu'OpenSSL puisse le faire. OpenSSL suppose un certificat par fichier pour les actions x509.

Selon ce site, vous devez les diviser en fichiers individuels. Il fournit même un script perl qui le divisera pour vous. Vous pouvez ensuite parcourir les fichiers en boucle ou modifier le script perl pour extraire directement le sujet.

bahamat
la source
1

Définissez la filevariable pour pointer vers votre fichier, modifiez la commande openssl et vous êtes prêt à partir:

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
Alexei Volkov
la source
Cette réponse pourrait être améliorée en ajoutant une description du fonctionnement des commandes. Et BTW, vous n'avez pas besoin des accolades ${file}.
G-Man dit `` Réintègre Monica '' le
ce script fonctionne exactement comme prévu, il prend chaque section de certificat d'un fichier (chaîne) et affiche les lignes d'objet
user906489
0

Pour imprimer tous les sujets dans le fichier CA:

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

Chase T.
la source