Opensslコマンドのヘルプをお願いします。作業中のスクリプトのpkcs12証明書のsubject =行の取得を自動化する必要があります。
Identity/Certificateの内容を表示するためにopensslを使用しました:
openssl pkcs12 -info -in /Users/[user]/Desktop/ID.pfx
しかし、パスワードの入力を3回求められます。パスワードプロンプトの1つを削除するために-passinを使用しましたが、PEMパスフレーズと検証エントリの入力を求められています。
$ {password}を他の2つのパスワードチャレンジに渡す方法を見つけるか、scripに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#
これを試して:
$ openssl pkcs12 -in ~/cert.p12 -nodes \
-passin pass:"my password" | openssl x509 -noout -subject
または、これは一般名(Rubyで末尾の空白を削除する)の場合:
$ openssl pkcs12 -in ~/cert.p12 -nodes \
-passin pass:"my password" | openssl x509 -noout -subject \
| awk -F'[=/]' '{print $6}'`.strip`
「未回答」フィルターからこの質問を削除するために、ここに回答をコピーします。
openssl pkcs12 -nokeys -in /Users/[User]/Desktop/ID.pfx -passin pass:${password}
-passin
と-passout
を使用することもできますが、これらは手動入力を再度要求することはありません。サンプルコードを次に示します。
openssl pkcs12 -in seldpush_dev.p12 -passin pass:$password -passout pass:$password | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | \
openssl x509 -subject -noout
基本的に、-keyword
を使用してその値を取得します。あなたの場合、-subject
。
これは数年遅れています。私はopensslなどに詳しくありません。しかし、「-nokeys」への参照が表示されないため、何が機能するかを説明します。
echo -e "$password\n$passphrase\n$passphrase\n" \
| openssl pkcs12 -in /Users/[user]/Desktop/ID.pfx -passin stdin -passout stdin
マンページから
stdin read the password from standard input.