シェルで .pem ファイルから共通名を読み取る方法はありますか?
ありがとう
まず、.pem
拡張子はファイルで使用されているエンコーディングのタイプのみを参照します。
一般名は、証明書のサブジェクトまたは発行者の特徴であり、次の行で認識できます。
$ grep CERTIFICATE f.pem
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
そしてその間にたくさんのbase64エンコードされたテキストがあります。
.pem
ファイルにx509証明書が含まれている場合、これでうまくいくはずです。
openssl x509 -in cacert.pem -noout -text
これにより、証明書全体がダンプされます。このopenssl x509
コマンドには、表示したくないフィールドを抑制するためのいくつかのオプションがあります。これらの説明は、manページの以下にあります。TEXT OPTIONS
証明書の「件名」のみを表示するように選択することもできます。
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: CN = *.stackexchange.com