Openssl s_client:提取最后一个证书

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'

但是现在我想只提取链中的最后一个证书,有没有简单的方法可以做到这一点?

答案1

以下是简单的一行代码:

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 上运行,它生成三个文件outfile00outfile01outfile02。因此您可以从文件中获取所需的证书。

相关内容