Назад | Перейти на главную страницу

Openssl s_client: извлечь последний сертификат

Я могу вывести всю цепочку сертификации с удаленного веб-сайта с помощью следующей команды:

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

Но теперь я хотел бы иметь возможность извлекать только последний сертификат в цепочке, есть ли простой способ сделать это?

Вот простой лайнер:

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

Он работает на моей CentOS, он делает три файла outfile00, outfile01 и outfile02. Итак, вы можете взять сертификат, который хотите, из файла.