ホームページ >Java >&#&チュートリアル >サーバーが別の CA によって署名されたクライアント証明書を要求すると、Java SSL ハンドシェイクが失敗するのはなぜですか?
Java SSL ハンドシェイクにおけるクライアント証明書の省略
SSL ハンドシェイク中の Java の動作により、クライアント証明書が省略され、ハンドシェイクが発生する場合があります。失敗。この問題は、サーバーが特定の CA (この場合は「RootCA」) によって署名されたクライアント証明書を要求し、Java がキーストア内で下位 CA (「SubCA」) によって署名されたクライアント証明書しか見つからない場合に発生します。
キーストア構成の考慮事項:
サーバー構成の考慮事項:
回避策:
この問題を修正するには、クライアント証明書をとその証明書チェーン (「SubCA」証明書を含む) を 1 つのファイル (bundle.pem など) に結合する必要があります。このバンドルされた PEM ファイルは、keytool -importcert -keystore store.jks -alias myalias -filebundle.pem を使用して、クライアントの秘密キーを保持するキーストア エイリアスにインポートできます。これを行うと、Java は完全な証明書チェーンを認識し、SSL ハンドシェイク中に適切な証明書を送信します。
以上がサーバーが別の CA によって署名されたクライアント証明書を要求すると、Java SSL ハンドシェイクが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。