Openssl s_client:提取最后一个证书

通过使用以下命令,我可以从远程网站输出所有authentication链:

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

但是现在我想能够提取链中最后一个证书,是否有一个简单的方法来做到这一点?

这里是简单的oneliner:

 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上运行,它创build了三个文件outfile00outfile01outfile02 。 所以你可以从文件中获取你想要的证书。