Como extraio todos os assuntos de um cacertfile com a linha de comando openssl?

8

Existe um comando openssl para extrair todos os assuntos de certificados de um arquivo cacert (um arquivo que contém vários certificados como /etc/ssl/certs/ca-certificates.crt)?

Eu tentei, openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -subjectmas só me fornece o assunto do primeiro certificado.

sebokopter
fonte

Respostas:

5

Infelizmente, não acredito que o OpenSSL possa fazer isso. O OpenSSL assume um certificado por arquivo para ações x509.

De acordo com este site, você deve dividi-los em arquivos individuais. Ele até fornece um script perl que o dividirá para você. Você pode fazer um loop sobre os arquivos ou modificar o script perl para extrair o assunto diretamente.

bahamat
fonte
1

Defina a filevariável para apontar para o seu arquivo, modifique o comando openssl e você estará pronto:

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
fonte
Esta resposta pode ser melhorada adicionando uma descrição de como os comandos funcionam. E, BTW, você não precisa dos aparelhos ${file}.
G-Man diz 'Reinstate Monica'
este script funciona exatamente como o esperado, leva cada seção certificado a partir de um arquivo (cadeia) e mostra as linhas de assunto
user906489
0

Para imprimir todos os assuntos no arquivo CA:

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

Chase T.
fonte