Java の SSL ハンドシェイク動作: クライアント証明書が存在しない理由
SSL ハンドシェイク中に、Java でクライアント証明書を送信する際に問題が発生する場合があります。サーバー。これを解決するには、ハンドシェイク プロセスの動作と構成を理解することが重要です。
Java の証明書チェーンの処理
クライアント証明書を検証するとき、Java はキーストアを調べて、サーバーのリクエストで指定された CA によって署名された証明書。ただし、Java が (RootCA ではなく) SubCA によって署名されたクライアント証明書のみを検出した場合は、一致しないものとみなし、他のすべての証明書を無視します。
証明書チェーン中断の潜在的な原因
証明書チェーンが不完全ですキーストア:
SubCA 証明書をキーストアに追加しても、適切な証明書チェーンが確立されていない可能性があります。中間証明書がインポートされ、クライアント証明書のエイリアスに関連付けられてチェーンが完成していることを確認します。
サーバー側の構成:
サーバーは、RootCA によって署名された証明書を要求する場合がありますが、キーストア内のチェーンが不完全であるため、Java は証明書を提供できません。予想される証明書チェーンを決定するには、サーバーと明確にすることが重要です。
解決策
この問題を解決するには、次の手順に従います。
以上がSSL ハンドシェイク中に Java クライアント証明書が見つからないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。