ホームページ >Java >&#&チュートリアル >Java クライアントが SSL ハンドシェイク中に証明書を送信しないのはなぜですか?
SSL ハンドシェイク中に Java クライアントが証明書を送信できないのはなぜですか?
Java を使用して安全な Web サービスに接続しようとしている場合、ユーザーはハンドシェイクの失敗に頻繁に遭遇します。キーストアとトラストストアが正しく構成されているにもかかわらず、根本的な問題は、ハンドシェイク中に Java がクライアント証明書の送信に消極的であることが原因であることがよくあります。
問題の理解:
提案されました解決策:
1.壊れた証明書チェーンに対処する:
証明書チェーンが壊れることなく、SubCA 証明書がキーストアに正しくインポートされたことを確認します。これは、keytool -v -list -keystore store.jks を使用して行うことができます。エイリアス エントリごとに 1 つの証明書しか表示されない場合は、チェーンが壊れている可能性があります。
証明書チェーンをキーストアにインポートします:
問題を解決するには、クライアント証明書をインポートし、証明書チェーン全体を秘密鍵を含むキーストア エイリアスにまとめます。
2.サーバー側の構成の問題:
SubCA 署名付き証明書に対するサーバーの要求は合理的ですが、Java がその要求に厳密に従うと、不必要に制限が厳しくなる可能性があります。 Chrome や OpenSSL などのブラウザは、この点でより柔軟であることが確認されています。
回避策:
この問題を回避するには、別のアプローチを使用できます。
以上がJava クライアントが SSL ハンドシェイク中に証明書を送信しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。