从.pem文件中读取公用名

Hei*_*iko 8 shell ssl certificate

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

谢谢

Hen*_*eld 15

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

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

$ grep CERTIFICATE f.pem
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

和之间有很多base64编码的文本.

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

openssl x509 -in cacert.pem -noout -text
Run Code Online (Sandbox Code Playgroud)

这将转储整个证书.该openssl x509 命令有几个选项可以禁止您不想看到的字段.您可以在手册页的下方找到解释的内容TEXT OPTIONS

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

openssl x509 -in cacert.pem -noout -subject
Run Code Online (Sandbox Code Playgroud)

例:

让我们stackoverflow.com直接从服务器上获取证书

$ : | openssl s_client -connect stackoverflow.com:443 > f.pem 2>& 1 &&
      openssl x509 -in f.pem -noout -subject 2>& 1
Run Code Online (Sandbox Code Playgroud)

输出:

Subject: CN = *.stackexchange.com
Run Code Online (Sandbox Code Playgroud)