Openssl s_client: extrair o último certificado

1

Eu posso tirar toda a cadeia de certificação de um site remoto usando o seguinte comando:

openssl s_client -connect www.google.fr:443 -servername www.google.fr -showcerts 2>/dev/null | sed --quiet '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Mas agora eu gostaria de poder extrair apenas o último certificado da cadeia, existe uma maneira simples de fazer isso?

    
por skualito 15.11.2017 / 14:57

1 resposta

1

Aqui está um oneliner simples:

openssl s_client -connect www.google.fr:443 -servername www.google.fr -showcerts 2>/dev/null | sed --quiet '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | csplit --prefix=outfile - "/-----END CERTIFICATE-----/+1" "{*}" --elide-empty-files --quiet

Está funcionando no meu CentOS, ele cria três arquivos outfile00 , outfile01 e outfile02 . Então você poderia pegar o certificado que você quer do arquivo.

    
por 15.11.2017 / 15:41

Tags