从.pem文件中读取公用名

时间:2012-08-03 10:03:22

标签: shell ssl certificate

有没有办法从我的shell中的.pem文件中读取公用名?

由于

1 个答案:

答案 0 :(得分:14)

首先,.pem扩展名仅指文件中使用的编码类型。

通用名称是证书的主题或发行人的特征,并且可以通过行识别

$ grep CERTIFICATE f.pem
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

和其间的大量base64编码文本。

如果.pem文件包含x509 certificate, 这应该可以解决问题:

openssl x509 -in cacert.pem -noout -text

这将转储整个证书。 openssl x509 TEXT OPTIONS  命令有几个选项来抑制您不想看到的字段。您可以在手册页的{{3}}

下找到解释的内容

您还可以选择仅显示证书的“主题”:

openssl x509 -in cacert.pem -noout -subject

示例:

让我们直接从服务器

捕获stackoverflow.com证书
$ : | openssl s_client -connect stackoverflow.com:443 > f.pem 2>& 1 &&
      openssl x509 -in f.pem -noout -subject 2>& 1

输出:

subject= /C=US/ST=NY/L=New York/O=Stack Exchange, Inc./CN=*.stackexchange.com