SSL証明書からシリアル番号を抽出する方法

SSL証明書からシリアル番号を抽出する方法

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番目の部分seds/:$//)は出力の終わりにコロンを検索し、それを空の文字列に置き換えて目的の出力を提供します。


またはopensslユニークなsed答え:

openssl x509 -noout -serial -in test2.crt |  sed 's/.*=//g;s/../&:/g;s/:$//'

s/.*=//gコマンドの先頭に追加されたエントリは、最初のバージョンのsedエントリを置き換えます。cut

おすすめ記事