从 openssl s_client 输出中提取中间证书

从 openssl s_client 输出中提取中间证书

我正在寻找一些简单的方法来从 openssl s_client 获取中间证书详细信息。我可以通过管道输出到 openssl x509,但它首先需要叶证书。我想出了这个脚本,它可以工作,但好奇是否有更简单的命令来实现相同的目的。

echo 1 | openssl s_client -connect unix.stackexchange.com:443 -showcerts 2>/dev/null | sed -n '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/ p' | sed -n '/END CERTIFICATE/,$ p' | tail -n +2 | openssl x509 -noout -text 

答案1

你可能会尝试这样的事情:

$ echo 1 | \
  openssl s_client -connect unix.stackexchange.com:443 \
    -showcerts 2>/dev/null > /tmp/chained.pem && \
  openssl crl2pkcs7 -nocrl -certfile /tmp/chained.pem | \
  openssl pkcs7 -print_certs -text -noout

相关内容