Você está tentando especificamente extraí-lo de uma captura de pacote, ou está querendo apenas pegar o certificado da linha de comando durante o aperto de mão?
Se você está precisando apenas pegar o certificado, você pode fazer o seguinte:
echo | openssl s_client -connect sub.domain.tld:443 | openssl x509 -noout -text
Se você executar o comando sem retornar ao openssl
, poderá ver muito mais detalhes sobre o certificado, mas o segundo comando openssl
extrairá o próprio certificado.
O echo
pipe é necessário para que o shell do OpenSSL saia de forma limpa para retornar ao prompt do Bash.
Isso obviamente irá gravar tudo no STDOUT. Se você deseja salvar o certificado, será necessário redirecionar para um arquivo finalizando o comando com > filename.crt
. Se houver algum erro na cadeia de certificados, eles não serão finalizados no arquivo, mas serão gravados no STDERR.