我可以使用以下命令从远程网站输出所有认证链:
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 上运行,它生成三个文件outfile00
,outfile01
和outfile02
。因此您可以从文件中获取所需的证书。