PKCS12キーストアに保存されている証明書を一覧表示したかったのです。
キーストアには拡張子があります.pfx
PKCS12キーストアに保存されている証明書を一覧表示したかったのです。
キーストアには拡張子があります.pfx
キーストアがPKCS12タイプ(.pfx
)の場合は、次のように指定する必要があります-storetype PKCS12
(読みやすくするために改行を追加)。
keytool -list -v -keystore <path to keystore.pfx> \
-storepass <password> \
-storetype PKCS12
openssl
同じことを達成するために使用することもできます。
$ openssl pkcs12 -nokeys -info \
-in </path/to/file.pfx> \
-passin pass:<pfx's password>
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX 48 54 A0 47 88 1D 90
friendlyName: jedis-server
subject=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXX/CN=something1
issuer=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXXX/CN=something1
-----BEGIN CERTIFICATE-----
...
...
...
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
キーツールを使用してエントリ(証明書の詳細)を一覧表示できます。ストアの種類を指定する必要はありません。また、.p12
と.pfx
は両方のPKCS#12
ファイルです。キーストアファイルがあると仮定します。そうでない場合はcert.pfx
、cert.p12
次のコマンドを使用してコンテンツを一覧表示できます。
keytool -list -v -keystore cert.pfx -storepass <password>
また
keytool -list -v -keystore cert.p12 -storepass <password>
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: 1
Creation date: Jul 11, 2020
Entry type: PrivateKeyEntry
Certificate chain length: 2
openssl pkcs12 -info -in keystore_file
質問とすべての答えに欠けているのは、PKCS#12(.pfx)キーストアから公開データを読み取るためにパスフレーズが必要になる可能性があるということです。パスフレーズが必要かどうかは、PKCS#12ファイルがどのように作成されたかによって異なります。PKCS#7データ(OIDプレフィックス1.2.840.113549.1.7など)が「暗号化」または暗号仕様を使用する場合、またはasn1ツリー内のデータの場所が暗号化されたノードの下にある場合、パスフレーズの知識がないとデータを読み取ることができません。これは、'openssl pkcs12'コマンドがエラーで失敗することを意味します(出力はバージョンによって異なります)。パスフレーズの知識がなくても、なぜPKCS#12の証明書に興味があるのか疑問に思っている人のために。多くのキーストアと多くのフェーズフレーズがあり、それらを整理するのが本当に苦手で、すべての組み合わせをテストしたくないと想像してください。ファイル内の証明書は、それがどのパスワードであるかを見つけるのに役立ちます。または、キーストアを移行/更新するソフトウェアを開発していて、ユーザーの操作なしで、含まれている証明書に基づいて開始する手順を事前に決定する必要があります。したがって、後者の例は、PKCS#12構造に応じて、パスフレーズなしで機能します。または、キーストアを移行/更新するソフトウェアを開発していて、ユーザーの操作なしで、含まれている証明書に基づいて開始する手順を事前に決定する必要があります。したがって、後者の例は、PKCS#12構造に応じて、パスフレーズなしで機能します。または、キーストアを移行/更新するソフトウェアを開発していて、ユーザーの操作なしで、含まれている証明書に基づいて開始する手順を事前に決定する必要があります。したがって、後者の例は、PKCS#12構造に応じて、パスフレーズなしで機能します。
私は自分で答えを見つけられず、それを理解するために多くの時間を費やしたので、それを追加したかっただけです。