PEM形式のSSL証明書からシリアル番号を抽出する最良の方法は何かを知りたいです。
次に、証明書形式を次のように指定したいと思いますhexhex:hexhex:...:hexhex
。たとえば、SSL証明書の16進シリアル番号が次のような場合です。
0123456709AB
出力は次のようになります。
01:23:45:67:09:AB
好みに応じて、opensslとx509オプションを使用して1行のUNIXコマンドを使用してこれを実行したいと思います。
ベストアンサー1
努力する:
openssl x509 -noout -serial -in cert.pem | cut -d'=' -f2 | sed 's/../&:/g;s/:$//'
openssl x509 -noout -serial -in cert.pem
証明書のシリアル番号が出力されますが、形式はserial=0123456709AB
。
したがって、パイプを介してcut -d'=' -f2
出力を等号に分割し、2番目の部分である出力を出力します0123456709AB
。
つまり、sed
コマンドsed
の最初の部分はs/../&:/g
文字列を2文字(..
)ごとに分割し、コロン(:
)を挿入します。その結果は次のとおりです01:23:45:67:89:AB:
(末尾のコロンに注意)。
コマンドの2番目の部分sed
(s/:$//
)は出力の終わりにコロンを検索し、それを空の文字列に置き換えて目的の出力を提供します。
またはopenssl
ユニークなsed
答え:
openssl x509 -noout -serial -in test2.crt | sed 's/.*=//g;s/../&:/g;s/:$//'
s/.*=//g
コマンドの先頭に追加されたエントリは、最初のバージョンのsed
エントリを置き換えます。cut