私はこの分野の知識はあまりありませんが、まだグーグルでやろうとしています。これが私が直面している問題です。
CA署名付き証明書を持っていますが、それを自分のWebアプリケーションで使用したいと思います。最初にキーストアを作成しました。キーストアにエントリタイプ「keyEntry」を作成することがわかります。次に、作成したキーストアにCA署名付き証明書をインポートします。
手順は次のとおりです。
keytool -genkeypair -keystore keystore.jks
エイリアス「mykey」のタイプ「keyEntry」のキーストアにエントリが表示されます
次に、証明書をインポートします。
keytool -importcert -alias abc -file cert.crt -keystore keystore.jks
今度はtrypeの別のエントリ「trustedcertEntry」が表示されます。
このキーストアを使用すると、アップロードしたWebアプリケーションにアクセスできます。
証明書をインポートしながら、その場でキーストアを作成します。
keytool -importcert -alias abc -file cert.crt -keystore keystore2.jks
ここでは、「trustedcertEntry」というエントリタイプが1つだけ表示されます
このキーストアでは、Webアプリケーションにアクセスできません。
キーエントリタイプ "keyEntry"および "trustedcertEntry"とは何ですか。また、エントリタイプが "keyEntry"の場合にのみキーストアが機能するのはなぜですか。
Keytoolについての私の理解はせいぜい希薄ですが、秘訣は、ケース2では-genkeypair
を省略して、必要な秘密鍵を生成していないということです。
ケース1では、使用する手順は次のとおりです。秘密鍵のペア(公開鍵と秘密鍵)を作成し、証明書をキーストアの信頼できる証明書にインポートします。おそらく、信頼できる証明書が証明書として機能しているか、アプリケーションが同じファイル内の結合されたキーペア/証明書を使用していない可能性がありますが、秘密鍵と結合する別の証明書がキーストアにあります。
'trustedCertEntry'は、キーストアによって信頼される証明書であると言えます。これは、証明書チェーンを許可するために不可欠です(例:Root-CAがEnd-Cert1に署名するIntermediate-CA1に署名します。root-CAとIntermediate-CA1の両方をtrustedCertEntryとして使用しないと、キーストアはエンド証明書を信頼しません)。 TrustedCertEntryには、秘密鍵が関連付けられていません。証明書に含まれている公開鍵のみが含まれています。
keyEntry(私は思います!)は、証明書のない公開/秘密鍵のペアです。
privateKeyEntryは、関連付けられたCA署名付き証明書または自己署名付き証明書を持つ公開/秘密鍵のペアです。