使用 openssl 或其他命令查看 PEM 证书文件(完整证书链)中的所有证书

gel*_*ida 14 openssl x509

通常,证书文件(PEM)格式包含多个证书,例如:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
.....
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

使用命令: openssl x509 -in cert.pem -noout -text我可以看到第一个条目。

是否有任何内置方法可以显示第二个条目或所有条目。

有没有简单的方法可以查看所有条目?

我真正感兴趣的是:C,ST,O,OU,CN,主题,发行者和主题的有效期

har*_*ymc 17

帖子 如何查看捆绑中的所有 ssl 证书? 提出了几种可能性:

openssl crl2pkcs7 -nocrl -certfile CHAINED.pem | openssl pkcs7 -print_certs -text -noout
openssl crl2pkcs7 -nocrl -certfile CHAINED.pem | openssl pkcs7 -print_certs -noout (gives shorter output)
keytool -printcert -v -file <certs.crt>
Run Code Online (Sandbox Code Playgroud)

这篇文章包含使用 Perl、bash、awk 和其他实用程序时的更多变化。


use*_*686 7

我建议使用非 OpenSSL 工具:另一个流行的 TLS 堆栈 GnuTLS 有一个类似的certtool程序,可以以相同的格式生成输出。

certtool -i < multiplecerts.pem
Run Code Online (Sandbox Code Playgroud)

(它们在一些小细节上确实有所不同,例如不太常见的证书扩展的解码。)