PEM形式のSSL CRTファイルがあります。コマンドラインの証明書から共通名(CN)を抽出する方法はありますか?
openssl
がインストールされている場合は、次のコマンドを実行できます。
openssl x509 -noout -subject -in server.pem
certtool -i < whatever.pem | egrep "^\s+Subject:"
引数として使用するのではなく、<
を介してファイルを標準入力に送信していることに注意してください。 Sans egrep
これは証明書全体を出力しますが、CNは上部のSubject:
フィールドにあります(Issuer:
フィールドにもCN値があることに注意してください)。
X.509 Certificate Information:
Version: 3
Serial Number (hex): 01
Issuer: [...] CN=unixandlinux.ex <- Not this one.
Validity: ...
Subject: CN=goldilocks
certtool
はgnutlsの一部です。インストールされていない場合は、検索してください。 GnuTLSは、OpenSSL、IMOよりも少し優れています。
上記の答えを見つけ、それが非常に便利であることがわかりましたが、certtool
コマンド構文(Ubuntu Linuxでは今日)出力と同様に、goldilocksによって記述されたものとは著しく異なっていました。だから、私はそのすばらしい答えを「今日のバージョン」かもしれないもので更新するのが最善だと思いました。
_"i"
_オプション(now?)は_man certtool
_に従って「インポート」を表すため、適切なコマンドは_"d"
_、「表示」。したがって、このコマンド:
_certtool d myfoo.crt
_
(私の場合、ファイル拡張子はたまたま_.crt
_ではなく_.pem
_ ...これは関係ありません。)
...出力は、関連する部分で次のようになります。
_Common Name : Foobar
_
疑いもなく、goldilocksは正しかった:certtool
出力は、この場合openssl
よりもmuchの方が扱いが簡単です。