2017-11-23 21 views
1

から特定の証明書にアクセスするための最良の方法:秘密鍵、私はkeytoolコマンドの下に使用される公開鍵と証明書の関係とキーストア

keytool -genkey -alias <alias name> -keypass <keypassword> -keystore <keystore file name with location> -keyalg "RSA" -sigalg SHA1WITHRSA 

それから私は、コマンドの下に使用してキーストアの内容に見えた:

keytool -list -v -keystore <keystore file name with location> 

以下の内容が表示されます。

Keystore type: JKS 
Keystore provider: SUN 

Your keystore contains 1 entry 

Alias name: keyalias 
Creation date: Nov 23, 2017 
Entry type: PrivateKeyEntry 
Certificate chain length: 1 
Certificate[1]: 
Owner: CN=XXXXX, OU=SDG, O=XXXXX, L=XXXXX, ST=XX, C=IN 
Issuer: CN=XXXXX, OU=SDG, O=XXXXX, L=XXXXX, ST=XX, C=IN 
Serial number: 6c6ec57a 
Valid from: Thu Nov 23 14:30:35 IST 2017 until: Wed Feb 21 14:30:35 IST 2018 
Certificate fingerprints: 
MD5: 85:08:01:27:BF:CA:88:17:88:11:9D:E4:DF:DC:70:AD 
SHA1: 6D:14:08:BD:F6:4E:51:C2:A0:58:46:89:CC:85:06:BC:26:DA:23:4E 
SHA256: D6:94:A8:31:2F:5D:29:FA:29:5F:8C:5D:24:D0:8E:47:D4:17:4C:B8:8A: 
D8:A2:37:3F:18:24:5A:06:C1:E4:CB 
Signature algorithm name: SHA1withRSA 
Version: 3 

Extensions: 

#1: ObjectId: 2.5.29.14 Criticality=false 
SubjectKeyIdentifier [ 
    KeyIdentifier [ 
     0000: 50 AD ED B0 1D 3D 12 AE D4 C0 C7 EE 9F EE 43 11 P....=........C. 
     0010: F4 71 02 93          .q.. 
    ] 
] 

******************************************* 
******************************************* 

キーストア。

  1. ここで公開鍵はありますか?

  2. 私も証明書を見ることができますが、私は同じものを作成しませんでした。 Javaコードでこの証明書にアクセスする必要がある場合は、キーエイリアスを使用する必要がありますか、またはこの証明書にアクセスするための別名を設定できますか?誰かが、公開鍵と証明書がキ​​ーストアにリンクされているとどのように特定の証明書がキ​​ーストア(キーストアが複数の証明書を持っていると仮定した場合)からアクセスすることができますどのようにプライベートキー説明できる場合、それは大きな助けになります

答えて

1

自分の質問に返信するだけで、他の人にも役立つかもしれません。

秘密鍵には一連の数字が含まれています。それらの数字のうちの2つが「公開鍵」を形成し、他の数字は「秘密鍵」の一部です。 「公開鍵」ビットも証明書に埋め込まれています。証明書の公開鍵が秘密鍵の公開部分と一致することを確認するには、証明書と鍵を表示して番号を比較する必要があります。

秘密鍵から証明書にアクセスするには、秘密鍵のエイリアスを使用する必要があります。秘密鍵のエイリアスは、キーストアの内容を一覧表示するときに一般公開されています。

1

のkeytool -genkey -alias

良い、あなただけの鍵ペアを作成しました。

keytoolコマンドは、自己署名入りの証明書を持つ鍵ペアを作成します。実際、同じエイリアスにはPrivateKeyとX509証明書(PublicKey +いくつかの属性)があります

ここで公開鍵はありますか?

この場合、公開鍵は証明書の中にラップされます。

Javaコードでこの証明書にアクセスする必要がある場合は、キーエイリアスを使用する必要がありますか、この証明書にアクセスするための別名を設定できますか?

次のコードは、誰かが、公開鍵と証明書がキ​​ーストア

にリンクされているか、秘密鍵を説明できる場合、それは大きな助けになります

KeyStore.PrivateKeyEntry privKeyEntry = (KeyStore.PrivateKeyEntry)keystore.getEntry(KEYSTORE_ALIAS, new KeyStore.PasswordProtection(KEYSTORE_KEY_PASSWORD.toCharArray())); 

PublicKey pubKey = privKeyEntry.getCertificate().getPublicKey(); 

キーペアからの証明書と公開鍵をreturs

明らかにあなたはすでに見つかっています:)

関連する問題