¿Cómo extraigo todos los temas de un cacertfile con la línea de comando openssl?

8

¿Existe un comando openssl para extraer todos los sujetos certificados de un archivo cacert (un archivo que contiene varios certificados como /etc/ssl/certs/ca-certificates.crt)?

Lo intenté openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -subjectpero solo me da el tema del primer certificado.

sebokopter
fuente

Respuestas:

5

Lamentablemente, no creo que OpenSSL pueda hacer eso. OpenSSL asume un certificado por archivo para acciones x509.

De acuerdo con este sitio , debe dividirlos en archivos individuales. Incluso proporciona un script en perl que lo dividirá por ti. Luego, puede recorrer los archivos o modificar el script perl para extraer el tema directamente.

bahamat
fuente
1

Establezca la filevariable para que apunte a su archivo, modifique el comando openssl y estará listo:

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
fuente
Esta respuesta podría mejorarse agregando una descripción de cómo funcionan los comandos. Y, por cierto, no necesitas las llaves ${file}.
G-Man dice 'reinstalar a Mónica' el
este script funciona exactamente como se esperaba, saca cada sección del certificado de un archivo (en cadena) y muestra las líneas de asunto
user906489
0

Para imprimir todos los temas dentro del archivo CA:

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

Chase T.
fuente