オプションで(クライアントに応じて)クライアント側の証明書を必要とするサーバーを作成しています。証明書を提供するクライアントと証明書を提供しないクライアントは、同じサーバーポートを介してサーバーに接続する必要があります。
SSLContextで両方のタイプのクライアントをサポートできるように、「setWantClientAuth(true)」と呼びます。クライアントSSLSessionがネゴシエートされた後、クライアント証明書チェーンが利用可能な場合はそれを取得します。クライアントと証明書のチェーンを取得する唯一の方法は、「sslSession.getPeerCertificates()」を使用することです。これは、クライアントが証明書を提供しなかった場合、残念ながら例外をスローします。
getPeerCertificatesを呼び出す前にクライアント証明書が提供されたかどうかを判断して、証明書を提供しないクライアントの例外を回避できるようにする他の方法はありますか?