我正在寻找一些简单的方法来从 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