単一のコマンドを使用して証明書チェーン内のすべての証明書を別々の.crtファイルにエクスポートする方法

単一のコマンドを使用して証明書チェーン内のすべての証明書を別々の.crtファイルにエクスポートする方法

.crt単一のコマンドを使用して、証明書チェーン内のすべての証明書を別々のファイルにエクスポートしたいと思います。どうすればいいですか?

いくつかの背景情報を提供するには:

  1. opensslbashユーティリティを使いたいです。(openssl s_client -showcerts -connect <host>:<port> & sleep 4)
  2. 上記のコマンド可能複数の証明書を印刷します。つまり、次のパターンで複数の文字列を印刷できます。base64-----BEGIN CERTIFICATE-----でエンコードされたX.509証明書-----END CERTIFICATE-----。たとえば、

    -----BEGIN CERTIFICATE-----
    MIIFNzCCAx+gAwIBAgITUwAAAAJpqCKn3YTQ6gAAAAAAAjANBgkqhkiG9w0BAQsF...
    -----END CERTIFICATE-----
    
  3. ファイルの内容は、.crtラベルを含む印刷されたbase64でエンコードされた証明書と同じでなければなりません。

ベストアンサー1

パイプを通して入るawk '/BEGIN/ { i++; } /BEGIN/, /END/ { print > "cert-" i ".crt" }'

たとえば、

echo "" | 
    openssl s_client -showcerts -connect www.example.com:443 |
    awk '/BEGIN/ { i++; } /BEGIN/, /END/ { print > "cert-" i ".crt"  }'

おすすめ記事