ハンドシェイクが完了したら、サーバーソケットで使用しているgetPeerCertificates()
ハンドシェイク(socket.getHandshakeSession()
)を呼び出しsetNeedClientAuth(true)
ます。これにより、クライアント証明書を取得する必要があることがわかります。
何がうまくいかない可能性がありますか?SSLPeerUnverifiedException
スローされません
ssf = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
serverSocket = (SSLServerSocket)ssf.createServerSocket(PORT);
serverSocket.setNeedClientAuth(true);
//added to after accept list and picked up by a worker thread.
SSLSocket socket = (SSLSocket) serverSocket.accept();
//worker thread.
SSLSession handshake = socket.getHandshakeSession();
Certificate[] certificates = handshake.getPeerCertificates(); // NULL