opensslコマンドラインでcacertfileのすべてのサブジェクトを抽出するにはどうすればよいですか?


8

cacertfile(/etc/ssl/certs/ca-certificates.crtのようないくつかの証明書を含むファイル)のすべての証明書サブジェクトを抽出するopensslコマンドはありますか?

試しましたopenssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -subjectが、最初の証明書の件名しかわかりません。

回答:


5

残念ながら、OpenSSLでそれができるとは思いません。OpenSSLは、x509アクションのファイルごとに1つの証明書を想定しています。

このサイトによるとそれらを個別のファイルに分割する必要があります。彼はあなたのためにそれを分割するperlスクリプトさえ提供します。次に、ファイルをループするか、perlスクリプトを変更して、件名を直接抽出します。


1

file変数をファイルを指すように設定し、opensslコマンドを変更してください。

file="your file name"; first=""; for i in $(grep -n CERT "${file}" | cut -f 1 -d:)
do
    if [ -z "$first" ]
    then
        first=$i
        continue
    fi
    sed -n "$first,${i}p" "${file}" | openssl x509 -noout -subject
    first=""
done

この答えは、コマンドの動作の説明を追加することで改善できます。ところで、中括弧は必要ありません${file}
G-Manは 'Reinstate Monica'を

このスクリプトは期待どおりに機能し、各証明書セクションを(チェーン)ファイルから
取り出し

0

CAファイル内のすべての件名を印刷するには:

openssl crl2pkcs7 -nocrl -certfile ca-certificates.crt | openssl pkcs7 -print_certs -text -noout | grep 'Subject:'

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.