私の Dev OP チームは、Java キーストアで中間 CA 証明書を利用したいと考えています。中間証明書をキーストアに追加することは、「通常の証明書」を追加することと同じプロセスだと思いますよね? 注意が必要な「落とし穴」はありますか? また、CA に確認するのではなく、Java が中間証明書を使用していることをテストで確認するにはどうすればよいですか?
2 に答える
証明書チェーンの観点から推論する必要があります。中間 CA 証明書の目的は、リモート パーティがエンド エンティティ証明書 (サーバーまたはクライアント証明書自体など) と別の CA 証明書の間にチェーンを構築できるようにすることです。
この中間 CA 証明書をトラストストアとして使用されるキーストアにインポートすることについて話している場合、その CA 証明書が中間のものであるか「ルート」CA 証明書であるかは問題ではありません。そのトラストストアを使用するアプリケーション用にもう 1 つ。
キーストアとして使用されるキーストアについて話している場合は、EEC が正しいチェーンと共に提示されることを確認する必要があります。
たとえば、CA_1 が CA_2 の証明書を発行し、CA_2 がサーバー S の証明書を発行するとします。クライアントの信頼済みアンカーに証明書 CA_1 があります (必ずしも CA_2 である必要はありません): チェーン「S、CA_2」を提示する必要があります。 CA_2 を介してチェーンを検証できるようにします (そうしないと、CA_1 を S にリンクする方法がわかりません)。
そのためには、S のエントリとその秘密鍵に、証明書 S だけでなく、送信する必要があるチェーン (S、CA_2) が含まれていることを確認する必要があります。キーストアの別のエントリに CA_2 をインポートしても、JSSE はビルドされません。証明書 S を提示するときのチェーン。
その方法はこの回答で説明されています(ただし、これはクライアント証明書の観点からのものです)。