openssl を使用して pkcs12 証明書から情報を抽出する 質問する

openssl を使用して pkcs12 証明書から情報を抽出する 質問する

openssl コマンドについて助けていただきたいです。現在作業中のスクリプトの pkcs12 証明書の subject= 行の取得を自動化する必要があります。

Openssl を使用して、ID/証明書の内容を表示しました。

openssl pkcs12 -info -in /Users/[user]/Desktop/ID.pfx

しかし、パスワードの入力が 3 回求められます。パスワード プロンプトの 1 つを削除するために -passin を使用しましたが、それでも PEM パスフレーズと検証エントリの入力が求められます。
${password} を他の 2 つのパスワード チャレンジに渡す方法、またはスクリプトで ctl-c を発行する方法を見つける必要があります。必要な情報は、2 回目のパスワード プロンプトの前に stdout に出力されます。

ご協力いただければ幸いです。

当然ながら、この投稿では証明書の出力を省略しましたが、私が見ている内容はおわかりいただけると思います。

bash-3.2#  openssl pkcs12 -info -in /Users/[user]/Desktop/ID.pfx -passin pass:${password}
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: ****
    friendlyName: ****
subject=****
issuer=****
-----BEGIN CERTIFICATE-----
::HASH REMOVED::
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: ****
Bag Attributes
    localKeyID: **** 
    friendlyName: ****
Key Attributes: <No Attributes>

Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: 

::HASH REMOVED::
-----END RSA PRIVATE KEY-----
bash-3.2# 

ベストアンサー1

これを試して:

$ openssl pkcs12 -in ~/cert.p12 -nodes \
    -passin pass:"my password" | openssl x509 -noout -subject

または、共通名の場合は次のようになります (末尾の空白を削除するにはルビを使用します)。

$ openssl pkcs12 -in ~/cert.p12 -nodes \
    -passin pass:"my password" | openssl x509 -noout -subject \
    | awk -F'[=/]' '{print $6}'`.strip`

おすすめ記事