Keytoolを使用すると、コマンドでキーストアの詳細を表示できます
keytool -list -v -keystore <KeystoreName>
これは、サブジェクトキー識別子を含む値のセットを返します
SubjectKeyIdentifier [
KeyIdentifier [
0000: 60 7B 66 1A 45 0D 97 4B CA 89 50 2F 7D 04 CD 34
0010: A8 FF FC FD
]
]
これはSHA1キー識別子です。同じキーストアのSHA 256キー識別子を取得するにはどうすればよいですか?
Subject Key Identifier(SKIまたはSKID)は、個々の証明書のプロパティ(X.509拡張)です。
通常、証明書が署名されているときにSHA-1ハッシュとして計算されます。ハッシュされるデータは異なる場合がありますが、通常は少なくともsubjectPublicKeyビット文字列が含まれます。完全な160ビットのSHA-1値ではありません。
ハッシュがどのように作成されるかを(技術的に)気にするのは、署名を行うシステム、またはリクエストに追加できるため、リクエストの作成を行うシステムだけです。それ以外では、不透明な指紋または一意のIDとして扱われます-その値は、特定の証明書またはその発行者を識別するために比較するだけで済みます(支援および最適化するために パスチェック )、再計算する必要はありません。
SHA-256ハッシュを適切に計算する場合は、システムがハッシュの計算に使用するフィールドを正確に調べ、それをSHA-256への入力として使用する必要があります。 RFC 528 、特に §4.2.1.1 および §4.2.1.2 を参照してください。署名されたデータはおそらくバイナリDER形式のsubjectPublicKeyまたはsubjectPublicKeyInfoだけです、後者はOpenSSL署名付き証明書の場合のようです。
この(期限切れの)RFCドラフトは、サブジェクトキー識別子にSHA-2ハッシュの使用を提案しています: http://tools.ietf.org/html/draft-turner-additional-methods-4kis-08
OpenSSLバグ#2599 に、これに対する機能要求とパッチがわずかに苦しんでいます。
それは存在しません、そしてあなたは本当にそれが存在する必要はありません。証明書に必要なのは、Subject Key IDentifierプロパティのnique識別子だけで、システムにどのキーを使用して復号化するかを指示できます。ハッシュである必要はなく、一意である必要があります。別のキーにラベルを付けるために再利用しない限り、SKIDに「ZeutheusKey#1」というテキストを使用することもできます。
本当にSHA-256を使用してSKIDを生成したい場合は、先に進んでください。取得したら、新しい値を使用する新しい証明書要求を作成し、署名する必要があります。 Microsoftのcertutil.exeなどの一部のツールでは、証明書要求で任意のOIDに特定の値を設定できます。公開鍵のSHA-256ハッシュを生成して、その値を配置できます。 SKID OIDで。ただし、デフォルトで目的に十分に機能するSHA-1ハッシュを生成する場合は、これは多くの作業を行う必要はありません。