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`