クライアント証明書がサーバーのトラストストアに存在しない場合でも、TLS サーバーはクライアントからの接続を受け入れます。なんで?
サーバーコード:
tlsContext = SSLContext.getInstance(SSL_PROTOCOL);
tlsContext.init(getMyKeyManagers(),null,null);
SSLServerSocketFactory fact = tlsContext.getServerSocketFactory();
tlsServerSock = (SSLServerSocket)fact.createServerSocket();
tlsServerSock.setNeedClientAuth(true);
tlsServerSock.setWantClientAuth(true);
tlsServerSock.bind(objSocketAddress);
サーバーソケットコードのリッスンを開始します
クライアントコード:
SSLContext tlsContext = SSLContext.getInstance(SSL_PROTOCOL);
tlsContext.init(getMyKeyManagers(), getMyTrustManagers(), null);
SSLSocketFactory fact = tlsContext.getSocketFactory();
socket = fact.createSocket();
socket.connect(objSocketAddress);
コードが示すように、サーバー側に追加された TrustManagers はありませんが、クライアント認証は成功しています。どうしてですか?