cacertsとキーストアの違いは何ですか?


111

cacertsとキーストアの2つの違いは何ですか?

これらのリンクcacertsおよびkeystoreにある定義を使用すると、それらは証明書のコレクションであるように見えますが、(Java)分散システムのコンテキストではそうです。SSL接続時に認証に使用されるのはどれですか?両方か、どちらか一方か、代替か?


3
cacerts = 認証局の証明書
Peter Mortensen

回答:


138

「cacerts」はトラストストアです。トラストストアは、ピアの認証に使用されます。キーストアは、自分を認証するために使用されます。


こんにちはEJPの回答に感謝します。あなたの回答を読む前に引用しました;)フランシスとパンゲアであなたの回答を要約するかどうかの説明です。Cacertsは、アクセスまたは接続を要求するクライアントを認証するために使用されます。キーストアの場合、自分を認証する理由がわかりません。:)
dimas

19
私がもう一度書いたものを読んでください。(1)トラストストアは、ピアの認証に使用されます。あなたがクライアントなら、サーバーはピアです。サーバーの場合、その逆も同様です。(2)サーバーである場合、またはクライアントであり、サーバーがクライアント認証を要求する場合は、ピアに対して自分自身認証する必要があるため、キーストアにある独自の証明書と秘密鍵が必要です。(紛らわしいことに、同じファイル形式が両方に使用され、それはキーストアファイルと呼ばれます。)
Marquis of Lorne

わかりましたが、フォローアップの質問です。私のcacertsには、キーストアなどに保存されているすべての証明書が含まれています。アプリケーションのプライベート証明書を含む一部の証明書には異なるエイリアスがありますが、デジタル署名は同じです。理想的には、サーバーに接続して認証を要求する場合、cacertsを使用できますか?
ディマーズ2013

「別のエイリアス」の部分がわかりません。何と違う?最後の質問は実験で答えられます。
ローン侯爵

3
@ raja777m cacertsは信頼できる人物です。テストサーバーで自己署名証明書を使用するという間違いを犯さない限り、環境間で変更する理由はわかりません。テストと本番で異なるコードパスを使用しているということです。
ローンの侯爵

41

cacertsは、JavaがルートCAの公開証明書を格納する場所です。Javaはcacertsを使用してサーバーを認証します。

キーストアは、サーバーがクライアント認証を要求したときにサーバーと共有できるように、Javaがクライアントの秘密キーを保存する場所です。


@dimas明らかに、しかし彼が本当に意味するのは「リクエスト」です。
ローン侯爵

1
@ user207421私はこの答えを信じて、Javaアプリはhttpクライアントの役割を果たしており、Javaアプリが呼び出すhttp URLはサーバーアプリケーションです。したがって、クライアントJavaアプリのKeyStoreには、秘密鍵+証明書(署名付き公開鍵)の両方が必要で、証明書のみをサーバーアプリに送信します。また、サーバーアプリがJavaアプリでもある場合、独自のcacertファイルを使用して、クライアントJavaアプリから送信された証明書を検証します。
user104309 2018年

0

Cacertsは、証明書を発行できる信頼された署名機関の詳細です。これは、どの証明書が本物であると判断されたために、ほとんどのブラウザーが持っているものです。Keystoneには、クライアントを認証するためのサービス関連の証明書があります。


-2

JAVA_HOMEパスを確認してください。システムはにあるjava.policyファイルを探しますJAVA_HOME/jre/lib/security。JAVA_HOMEは常ににする必要があります../JAVA/JDK


3
努力に感謝しますが、EJPの回答を読んで理解する必要があります。
18
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.